![](/img/trans.png)
[英]JQuery click event is not working on dynamically created ul Li list in mvc
[英]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.