为什么我的jquery .on(‘change’)不适用于动态添加的选择

我正在动态添加选择元素,如下面的HTML.我不确定为什么.on(‘更改’…)不能用于动态选择.我错过了什么?

我正在使用Chrome 24.0.1312.57 jquery 1.8.3.

<script type="text/javascript">
  $(document).ready(function() {
      $('#x select').on('change',function () { alert('helo'); })
      $('#y select').on('change',function () { alert('helo'); })

      $('#x').html($('#y').html());
  });
</script>

<div id="x"></div>
<div id="y">
    <select>
        <option>O1</option>
        <option>O2</option>
    </select>
</div>

解决方法

你的代码
$('#x select').on('change',function () { alert('helo'); })

将事件处理程序附加到#x元素内的select.

你想要的东西(从我理解的东西)是这样的:

$("#y").on('change','select',function () { alert('helo'); });

这会将事件处理程序附加到#y元素,该元素将委托给其子元素的“select”元素

http://api.jquery.com/on/

The .on() method attaches event handlers to the currently selected set of elements in the jQuery object.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...