Chr*_*ris 0 javascript scope event-handling
有人可以帮我解决下面的(简化)代码.我试图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);
Run Code Online (Sandbox Code Playgroud)
你需要在某处声明'doTheSlide'.您似乎将其用作全局函数,这在大多数情况下都是错误的.确保所有内容都正确声明(使用var或使用命名函数).
这是您的代码的固定版本(我喜欢它的方式):
(function($) {
function doTheSlide(value) {
//Animate the slide
}
function bindEvent(slider) {
slider.bind('slide', function(event, ui) {
doTheSlide(ui.value);
});
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
记得在使用之前声明函数.它将调用稍后声明的函数,但它不是好的样式.
替代语法:
(function($) {
var doTheSlide = function(value) {
//Animate the slide
};
var bindEvent = function(slider) {
slider.bind('slide', function(event, ui) {
doTheSlide(ui.value);
});
};
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |