jQuery .on方法 - undefined不是一个函数

时间:2014-07-30 09:56:43

标签: jquery undefined

我无法使用.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;的元素。

2 个答案:

答案 0 :(得分:1)

如果您包含第三方库,其中包含自己的捆绑版jQuery,则会发生这种情况。 jQuery Tools是一个主要的嫌疑人。你认为你正在运行jQuery 1.11,但jQuery工具在内部使用1.6或一些古老的东西。所以它开始吐出关于“未定义”的错误。

答案 1 :(得分:-1)

我无法确切地说出你做错了什么,因为我不知道你正在使用哪个jQuery版本或者你的html是怎样的 见工作:http://jsfiddle.net/HbaSB