我很难让一个简单的事件触发与 jquery 一起工作。我正在使用 jquery 1.9.1 并且不打算降级。我缺少的一件事是.live()方法,该方法现在内置在.delegate()函数中。这是我想做的事情:
我有一些通过 AJAX 加载到我的页面中的 DOM,它看起来如下:
<select id="equip_new">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
</select>
现在我想触发新加载的选定选项的.change()函数。在旧的 jquery 中我会使用
$('#equip_new').live('change', function(){
alert(1);
});
现在我需要使用 .delegate() 但它不会触发任何东西。我的代码如下所示:
$('#equip_new').delegate('option', 'change', function(){
alert(1);
});
但它不起作用。
在更改通过 AJAX 加载到 DOM 的选择框中的选项时,如何正确使用委托来触发代码的任何想法?
编辑:我只是想通了,但想给其他人提示:
您必须在 AJAX 加载的内容上方的现有元素上调用 .delegate() 方法。例如 $('body')
我的事件处理程序绑定或委托也是错误的。我做了以下代码:
$('body').delegate('#equip_new', 'change', function(){
alert(1);
});
现在一切都很好。有时您需要向其他人解释一些事情以了解您做错了什么。