你如何获得对刚刚附加到 ul 的一堆 li 的引用
假设我有一个列表:
<ul id="mylist">
<li>1</li>
<li>2</li>
</ul>
现在我在上面的 ul 上追加了几个 li,所以:
$('mylist').append(response);
响应看起来像这样:
"<li>3</li>
<li>4</li>
<li>5</li>"
我想将点击处理程序附加到新附加的 li 上,但如何获取这些 li 的引用?
更新: ul#mylist 在弹出窗口中,最初不可见,单击另一个按钮时显示此弹出窗口:
$mybtn.click(function(){
$('#mylist').show();
});
那么,我应该在哪里定义“on”处理程序呢?如果我在他的按钮单击处理程序中执行此操作,那么它会多次附加“打开”处理程序,对吧,每次单击按钮时?我也无法在页面加载时定义“on”处理程序,因为那时 mylist 不可见。
最佳答案
在附加元素之前创建元素。
var els = $(response).appendTo('#mylist')
.on("click", function() { /* your code */ });
或者,如果它仅用于处理程序,您可以在 ul
上使用委托(delegate)处理程序,而不必担心。
// on page load
$('#mylist').on("click", "li", function() { /* your code */ });
// on response
$('#mylist').append(response);
关于javascript - 如何在 jQuery 中引用一堆刚刚添加的列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179005/