为什么我的“插件”只执行一次?
这是我第一次尝试编写一个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);
编辑:
在这一天结束,原来,我已经贴了错误的片段与未定义的变量高度的scrollTop的回调。删除它并将.click
切换为.on
后,该功能就像魅力一样。不过,我仍然感兴趣为什么它只有一次。
尝试直播()或(),像下面: “不能切换类不止一次”
$(this).on('click',function() {...
而不是
$(this).click(function() {...
'live()'已弃用。使用'delegate()'或'on()'代替 – 2012-02-19 15:57:55
@Pointy'$(this).click(function(){'...? – 2012-02-19 15:58:33
@RoryMcCrossan'delegate'也被弃用,afaik。 – Johan 2012-02-19 15:59:19
是什么让你觉得它第二次被称为什么? – Pointy 2012-02-19 15:57:11
如果你用'body'覆盖它,你为什么得到元素参数? – gdoron 2012-02-19 16:01:27
你在哪里换班? – gdoron 2012-02-19 16:02:49