繁体   English   中英

我的第一个jQuery插件,似乎只绑定到页面上八种形式的第一种形式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM