事件处理-在javascript范围内丢失



谁能帮我一下下面的(简化)代码。我试着从幻灯片事件函数中调用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);

相关内容

  • 没有找到相关文章

最新更新