![](/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.