在关闭twitter bootstrap模式时,向Object原型添加方法会导致错误

Nic*_*oud 4 jquery twitter-bootstrap

我有一个非常奇怪的问题.

我正在使用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 keyup.dismiss.modal从DOM 分离事件侦听器时,会发生此错误.

我已经用jQuery 1.7.1和1.7.2确认了这个错误,但我怀疑它是一个Twitter Bootstrap问题而不是jQuery本身.

Jas*_*tti 5

这与jQuery和扩展Object.prototype有关.

看到这个问题:Javascript中的Prototyping Object打破了jQuery?

基本上,您应该避免扩展Object.prototype,但请查看答案以获取更多详细信息.