大家好我生成我的ul和li如下并且想要触发click事件但是delegate(),on()和click()方法不起作用live()效果很好但是live()是不推荐的函数所以有没有其他方法,我可以帮助我吗?/ 这里“loadpage”是我的html代码中的div
<script type="text/javascript">
$(document).ready(function() {
$('#LoadPage').append('<ul class="testul" id="list">');
for (var i = 1; i < 5; i++) {
$('#list').append('<li class="clicks" id="item'+i+'"></li>');
}
$('#LoadPage').append('</ul>');
});
// click event works wtih .live() onlyyy.......................
$('.clicks').live('click', function() {
alert('hello');
});
/*$(".clicks").on("click", function(){
alert('hello');
});
$("#testul").delegate("li", "click", function() {
alert('hello');
});
$("#testul").delegate("li", "click", function() {
alert('hello');
});*/
</script>
答案 0 :(得分:4)
您的选择器应与文档匹配,因为文档实际存在。然后,您将在选择器上传递以获取将存在的点击。通过最初匹配.clicks,您的结果集为空,没有任何反应。
$(document).on("click", ".clicks", function(){
alert('hello');
});
live 的文档讨论了如何转换使用 on 或委托的代码:http://api.jquery.com/live/。
答案 1 :(得分:2)
答案 2 :(得分:1)
方法delegate(),on()和click()不起作用,因为你还没有加载html。在加载li元素后尝试定义它。
<script type="text/javascript">
$(document).ready(function() {
$('#LoadPage').append('<ul class="testul" id="list">');
for (var i = 1; i < 5; i++) {
$('#list').append('<li class="clicks" id="item'+i+'"></li>');
}
$('#LoadPage').append('</ul>');
$('.clicks').click(function() {
alert('hello');
});
});
</script>
答案 3 :(得分:1)
$(document).ready(function() {
$('#LoadPage').append('<ul class="testul" id="list">');
for (var i = 1; i < 5; i++) {
$('#list').append('<li class="clicks" id="item'+i+'"></li>');
}
$('#LoadPage').append('</ul>');
});
// click event works wtih .live() onlyyy.......................
$('.clicks').live('click', function() {
alert('hello');
});
只需将其更改为
即可 $(document).ready(function() {
$('#LoadPage').append('<ul class="testul" id="list">');
for (var i = 1; i < 5; i++) {
$('#list').append('<li class="clicks" id="item'+i+'"></li>');
}
$('#LoadPage').append('</ul>');
// click event works wtih .live() onlyyy.......................
$('.clicks').click(function() {
alert('hello');
});
});
以前这些<li>
项目不存在于DOM中,在插入DOM后,它可以具有任何功能。
答案 4 :(得分:0)