簡體   English   中英

jquery:動態地將li項附加到ul然后添加click,但是點擊運行每個li

[英]jquery: dynamically appending li items to ul then adding click, but click runs through each li

所以我可能正在接近這個錯誤,因為我正在學習,但我似乎無法弄清楚我在這里做錯了什么(可能是簡單的錯誤,但我遇到了麻煩)。 因此,我試圖在標記內有一個按鈕單擊,允許從對話框中進行選擇,對話框中的提交按鈕包括調用自定義函數,該函數執行某些邏輯,然后將字符串附加到類似:

buildListElementItem += "<li>something</li>";
$("#my-list").append(buildListElementItem);

然后綁定點擊,因為我需要這些列表項中的每一個都代表選擇面板類型的東西

$("#my-list li").bind('click', function () {
   //processing stuff
});

一切正常但是如果我在這個列表中添加多個項目(一個接一個)並且你單擊一個項目,它會滾動每個項目,這讓我感到困惑,因為沒有每個項目,我認為這應該只添加到一個單項......

所以這個函數/等有更多的東西,但我覺得我的方法在這里是錯的?

我已經嘗試將選擇器修改為類似於我在li的字符串中添加的類,我嘗試使用.on,.live,.delegate或任何我能找到的而不是bind click。

也許這是嘗試執行此操作的簡單方法類型錯誤,但我非常感謝任何幫助,建議等。

編輯:只需添加更多澄清

對話框允許用戶從選擇/下拉選擇項目,按鈕單擊(jquery ui)具有調用以下想法的功能,將項目添加到列表元素,該列表元素用作選擇面板。 因此,他們可以填充面板上所需的項目,然后單擊每個項目以填充並將數據與該項目相關聯。

function addNewListItem(passedType)
{
    var buildListElementItem = "<li>" + passedType + "</li>";
    $("#my-list").append(buildListElementItem);
    $("#my-list li").bind('click', function () {
       otherStuff();
});

如果我這樣做,我猜這會導致每個元素一遍又一遍地被綁定? 不確定,但這有效的例外,當我點擊該面板上的單個li項目時,它處理面板上的所有li項目(otherStuff函數)。 所以我想從示例中我開始理解這個問題或為什么這不起作用,但是我如何處理我想要做的事情呢? 永遠贊賞你們! }

當你說“沒有每個”時,你省略$("#my-list li")是一個jQuery選擇器,即它返回與表達式匹配的所有元素:在這種情況下,子項中的所有li項#my-list的樹。 因此,當您調用bind時,它將綁定到已添加到元素的每個li項。

您正在尋找的是:

buildListElementItem = $("<li>something</li>"); //constructs a jquery object you can bind to
buildListElementItem.bind('click', function () {
   //processing stuff
});
$("my-list").append(buildListElementItem);

這樣,您可以在添加元素之前進行綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM