谁能帮我一下下面的(简化)代码。我试着从幻灯片事件函数中调用doTheSlide()
函数。我对JS中的作用域的理解还是有点模糊。
实现这一目标的正确方法是什么?我得到这个错误:
Uncaught TypeError: object is not a function
(function($) {
bindEvent = function(slider) {
slider.bind('slide', function(event, ui) {
doTheSlide(ui.value);
});
}
doTheSlide = function(value) {
//Animate the slide
}
var methods
})(jQuery);
您需要在某处声明' dothesslide '。您似乎将其用作全局函数,这在大多数情况下是错误的。确保所有内容都被正确声明(使用var或使用命名函数)。
这是你的代码的固定版本(我喜欢的方式):
(function($) {
function doTheSlide(value) {
//Animate the slide
}
function bindEvent(slider) {
slider.bind('slide', function(event, ui) {
doTheSlide(ui.value);
});
}
})(jQuery);
记住在使用函数之前声明它们。它可以调用稍后声明的函数,但这不是一个好的风格。
替代语法:(function($) {
var doTheSlide = function(value) {
//Animate the slide
};
var bindEvent = function(slider) {
slider.bind('slide', function(event, ui) {
doTheSlide(ui.value);
});
};
})(jQuery);