4

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

我正在使用 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 本身。

4

1 回答 1

5

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

看到这个问题:Javascript 中的原型对象破坏了 jQuery?

本质上,您应该避免扩展 Object.prototype,但请参阅答案以获取更多详细信息。

于 2012-06-11T21:40:12.750 回答