![](/img/trans.png)
[英]jQuery .live('click') seems to only bind to the first element
[英]my first jQuery plugin, only seems to bind to the first form of eight forms on the page
我正在写一个小的jQuery插件,该插件绑定到页面上的8个div,每个div都包含一个表单。 每个窗口小部件都有两个链接,这些链接会递增或递减表单中的字段,然后发布表单。 问题在于页面上的所有16个链接都提交了页面上的第一个表单。
源代码在这里: http : //pastie.org/657045
我是jQuery / JS newb,认为这可能是一个范围可变的问题,但是我尝试了所有操作,但无法使这些元素独立运行。
从一开始,您就需要遍历$(containerobj)的结果,并通过它运行其余代码,替换每个引用,如下所示:
jQuery.RankWidget = function(containerobj, options) {
return $(containerobj).each(function() {
var $container = $(this);
var $form = $container.find('.rank_buttons form');
var $rank_up = $container.find('.rank.up');
var $rank_down = $container.find('.rank.down');
var $value_field = $container.find('input.rank_value');
var $comment_score = $container.find('.comment_score');
var $comment_rank = $container.find('.comment_rank');
...
};
};
目前,您正在将所有事件应用于所有链接,而不是依次将其限定在每个容器对象上。
我通过使用.click()而不是.live()解决了我的问题
有人知道是否可以使用.live()并正确获取每个小部件的作用域? 我什至尝试将变量作为参数传递给clickRank()函数,但它仍引用错误的形式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.