我有一个非常奇怪的问题。
我正在使用Twitter Bootstrap 2.我在页面上有一个模态对话框,我这样打开:
$('#rights-dialogue).modal();
我还在Object.prototype
对象中添加了一个自定义函数,如下所示:
Object.prototype.foo = function (a) {};
单击模态对话框中的x
按钮时,对话框会关闭,但黑色背景仍然存在,我在jQuery事件处理代码中出现了一个奇怪的jQuery错误:
Uncaught TypeError: Cannot read property 'origType' of undefined
如果我从foo()
函数中删除所有参数,我不会收到此错误,一切正常。
这是一个说明问题的jsfiddle:http://jsfiddle.net/nicholascloud/r6T8z/5/。
我不知道这里发生了什么。
编辑:我注意到的其他一些事情。
Object.prototype上的方法名称似乎并不重要。任何带参数的方法都会导致此错误。如果添加的方法没有参数,则不会发生错误。
当jQuery从DOM中分离事件侦听器keyup.dismiss.modal
时,会发生错误。
我已经用jQuery 1.7.1和1.7.2确认了这个错误,但我怀疑它是一个Twitter Bootstrap问题而不是jQuery本身。
答案 0 :(得分:5)
这与jQuery和扩展Object.prototype有关。
请参阅此问题:Prototyping Object in Javascript breaks jQuery?
基本上,您应该避免扩展Object.prototype,但请参阅答案以获取更多详细信息。