我有一个简单的代码如下:
<html>
<body>
<div id="div1">
<input class="input1" type="text" value="click me 1" />
</div>
<script type="text/javascript">
$('.input1').click( function() { alert('clicked'); });
$('#div1').append('<input class="input1" type="text" value="click me 2" />');
</script>
</body>
</html>
我发现附加到“#div1”的第二个文本框没有获得与“input1”类关联的点击响应。
我错过了什么?请大家多多指教,非常感谢。
最佳答案
您应该将事件委托(delegate)与 .on()
方法一起使用...
$('#div1').on('click','.input1',function(...
这会将处理程序放置在#div1
上。当在其中发生点击时,'.input1'
选择器将运行,如果单击的元素匹配,则调用处理程序。
或者在旧版本的 jQuery(1.7 之前)中,使用 .delegate()
。
$('#div1').delegate('.input1','click',function(...
关于javascript - jQuery 看不到动态元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944036/