javascript - jQuery 看不到动态元素?

标签 javascript jquery

我有一个简单的代码如下:

<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/

相关文章:

javascript - 客户端的时区独立时间

javascript - 无论如何有多行跨越字符串而不使用 +

javascript - 如何在 Node Webkit 桌面应用程序中使用 Google Analytics

javascript - 如何使用 Lodash 过滤嵌套数组?

javascript - 使用 jQuery 更改一个元素的 CSS 不起作用

javascript - 如何在 Chrome 中运行 box shadow 并在 td 标签之间添加空格

Javascript/jquery 写入从 :selected option to separate input 开始的每个文本值

javascript - 修改子 Controller 内父 Controller 的变量AngularJS 1.x

javascript 验证 zip 正则表达式

javascript: 未捕获类型错误: 无法读取未定义的属性 'objects': jquery-csv