jquery插件事件仅适用于最后一项

时间:2012-03-20 11:59:13

标签: jquery events jquery-plugins

我正在制作一个插件(我的第一个,对不起,如果凌乱;))对于jquery,一切正常,除了事件。无论如何,事件总是适用于最后一个元素。如果只有一个元素一切都很好,但有两个或更多元素事件崩溃。

我一直在寻找类似的猜测,但我无法找到解决方案。

代码已开启:

http://jsbin.com/itajow/edit#javascript,html

,演示在

http://jsbin.com/itajow

只是过滤或通过分页来查看问题。

提前致谢!!

1 个答案:

答案 0 :(得分:0)

方法中使用的self变量以不同的方式使用 - 在某个地方,它被创建为局部变量(方法中的var self = this),而其他地方则被用作变量,其外部生命周期该方法(通过省略var)。我不知道这是否有意获得其他一些影响,但是让变量local解决了分页问题只发生在最后一个元素。

更新的代码位于http://jsbin.com/itajow/11/edit

注意:声明addNav:function(self)接受self对象,但在代码中使用和不使用参数都会调用它,因此函数的第一行通过执行{{1}来修复此问题}。

修改
要使列表过滤工作,可以按如下方式重写事件绑定:

self = self || this

并且self.$elem.find(".beautableFilter").on("keyup", function() { var input = $(this).val(); //this == the input element self.addFiltrado(input); }); 方法应该将addFilterado作为参数,而不是自己找到它。

(代码,将其保存在此处)

input