lib-used: - http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js
jquery
$(document).ready(function(){
$("#dynamic").append("<div class=id1>Dynamically created click</div>");
$("#id1").click(function(){
alert("triggerd func is:"+(this));
});
});
html
<body>
<div id="id1">Hard Coded Click</div><!-- working -->
</br>
<div id="dynamic"></div><!-- not working -->
</body>
4 回答
这些答案确实包含正确的代码(使用on),但它们没有解释为了使用click()方法触发单击侦听器,必须在绑定事件之前加载该元素 .
因此这将工作:
但这不会
所以基本上如果你使用
.on('click', '.id1', ....)
它会以任何一种方式开火 .同样,为了让所有内容都在同一个答案中,您的选择器基于ID属性而不是您正在使用的类名 .
您的点击事件不起作用..您的点击事件选择id为id1的所有元素,因此动态添加的元素具有类而不是id ..所以事件不起作用...
一种做法是
your selector should be class selector...not id ...在委托事件上使用动态添加的元素以使该事件起作用 .
注意:id应始终是唯一的,并且要使硬编码的div工作,您应该将id设置为class
使用on而不是click.Code将是这样的
我希望它会有所帮助
您将click事件绑定到Id = id1的元素 . 如果单击具有不同Id的元素,则不会触发它 .
将类添加到两个div并将click事件选择器调整到该类,即 .