我无法使用.on()方法处理动态元素。尝试了这么多不同的尝试,但没有任何效果。有人能指出我做错了吗?
$(document.body).on('change', 'select', function() {
alert('hello');
});
在我的html中,附加了上面的脚本,我有几个选择元素。在其中一个元素的更改事件中,浏览器的控制台中显示以下错误:
未捕获TypeError:undefined不是函数..(在jQuery脚本文件中)
有什么建议可以解决这个问题吗?谢谢!
-----更新-----
对不起,简要说明一下。 jQuery版本是1.11.1。
HTML:
<div id="ticket-container">
<div id="ticket1">
<label for="ticket1">Ticket: </label>
<select class="ticket-list" id="ticket1" name="ticket1">
<option value="1">ticket 1</option>
<option value="5">ticket 2</option>
<option value="6">Ticket 3</option>
</select>
<label for="tickettype1">Ticket type: </label>
<select class="tickettype-list" id="tickettype1" name="tickettype1">
<option value="1">Child</option>
<option value="2">Adult</option>
<option value="3">Elderly</option>
</select>
<label for="quantity1">Quantity: </label>
<input name="quantity1" type="text" value="1" id="quantity1">
</div>
</div>
此外,上面的html是通过Laravel生成的 - 但这不应该影响jQuery。
另外,我有一个添加按钮,点击它会附加第二个div,ID为&#39; ticket1&#39;在它自己之后,并在每次点击时递增每个ID(例如:ticket2)。
这就是为什么我需要使用.on()jQuery方法,因为我需要将change事件绑定到选择带有类&#39; ticket-list&#39;的元素。
答案 0 :(得分:1)
如果您包含第三方库,其中包含自己的捆绑版jQuery,则会发生这种情况。 jQuery Tools是一个主要的嫌疑人。你认为你正在运行jQuery 1.11,但jQuery工具在内部使用1.6或一些古老的东西。所以它开始吐出关于“未定义”的错误。
答案 1 :(得分:-1)
我无法确切地说出你做错了什么,因为我不知道你正在使用哪个jQuery
版本或者你的html是怎样的
见工作:http://jsfiddle.net/HbaSB