我正在尝试将 li 元素附加到具有自定义单击事件的链接的列表中......我正在尝试类似的东西:
<div id="myid"><ul></ul></div>
$('#myid ul').append("<li><a href=''>Link</a></li>").click(function(){alert('hi')})
但是点击事件是在li而不是a href上。我该如何解决?
我正在尝试将 li 元素附加到具有自定义单击事件的链接的列表中......我正在尝试类似的东西:
<div id="myid"><ul></ul></div>
$('#myid ul').append("<li><a href=''>Link</a></li>").click(function(){alert('hi')})
但是点击事件是在li而不是a href上。我该如何解决?
实际上,click 事件处理程序绑定到ul
元素。
我该如何解决?
将其绑定到a
元素:
$("<li><a href=''>Link</a></li>").find('a').click(function(event) {
event.preventDefault(); // <-- if you don't want the browser follow the link
alert('hi');
}).end().appendTo('#myid ul');
不过,单独创建链接可能会更干净:
$('<a />', {
text: "Link",
href: "",
click: function() {/*...*/}
}).wrap('<li />').parent().appendTo('#myid ul');
有关所用方法的信息可以在jQuery API 文档中找到。
您可以使用.on
,因为您的 li 是即时附加的
$('#myid ul').append('<li id="li1"><a href=''>Link</a></li>');
$('body').on('click','#li1',function(){
alert('hi');
});
$('#myid ul').append("<li><a href=''>Link</a></li>");
$("a").live("click", function() { // or use on(...)
alert('hi');
});
在附加后将点击实时绑定到 a 元素。Jsfiddle在这里:http: //jsfiddle.net/reygonzales/Z5pSC/
$('#myid ul').append("<li><a href=''>Link</a></li>")
.find("a:last").click(function(){
alert('hi')
});