为什么我的"插件"只执行一次?

时间:2012-02-19 15:50:56

标签: javascript jquery

这是我第一次尝试编写一个jQuery插件,这个应该淡出身体,切换类,然后让身体重新出现并让用户切换回来。不幸的是,此时它不能多次切换类。如何解决?

(function($) {

    $.fn.flashClass= function(classId, element){

        element="body"; //overriden for testing purpose
            $(this).click(function() {
                $(element).fadeOut("slow", function() {
                    $(element).toggleClass(classId);
                });
                $(element).fadeIn("slow", function() {
                    $(element).scrollTop(height);
                });
            });
    };
})(jQuery);

编辑:

在一天结束时,事实证明我已使用未定义变量 height 的scrollTop回调粘贴了错误的代码段。删除它并将.click切换为.on后,功能就像魅力一样。但是我仍然感兴趣为什么它只能工作一次。

1 个答案:

答案 0 :(得分:1)

尝试live()或on(),如下所示:

 $(this).on('click',function() {...

而不是

 $(this).click(function() {...