javascript - 如何在 twitter bootstrap 中覆盖 JavaScript 函数

标签 javascript jquery twitter-bootstrap

我们目前使用 Twitter Bootstrap 2.3.2,我正在尝试找出一种方法来绑定(bind)属于下拉组件一部分的切换功能。我试图在全局范围内做到这一点,并提出了以下代码:

; (function ($, window, document, undefined)
{
    var oldToggle = $.fn.dropdown.Constructor.prototype.toggle;

    $.fn.dropdown.Constructor.prototype.toggle = function (e)
        {
            console.log('here');
            return oldToggle.call(this, e);
        }
})(jQuery, window, document);

当我将此代码放入 Bootstrap 文件中时,覆盖工作正常。当我尝试将其包含在页面的其他位置时,我的 console.log 永远不会执行。我在这里缺少什么?

这是一个指向 JSFiddle 的链接,其中包含上面发布的代码 http://jsfiddle.net/whoiskb/8nvuk/1/

最佳答案

您将无法从外部覆盖该函数。查看bootstrap源码

$(document)
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)

一旦绑定(bind)了此事件,对原型(prototype)的任何更改都不会生效,因为原始函数已传递并且您无法收回。

https://github.com/twbs/bootstrap/blob/master/js/dropdown.js#L141

关于javascript - 如何在 twitter bootstrap 中覆盖 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072809/

相关文章:

javascript正则表达式/e*/结果为空匹配

javascript - 如何在没有 href 链接的情况下获取标签

jquery - 通过 Jquery 重置本地日期时间

html - 如何在移动方向更改时重置 Disqus 宽度

java - Bootstrap(实际上是 JQuery)DatePicker 不会隐藏在 Wicket 模式中的模糊中

jquery - 页面重新加载后保持当前 Bootstrap 选项卡处于事件状态,而不会跳转到之间的第一个选项卡

javascript - 使用谷歌图动态调整条形图的大小

javascript - 重构时 ReactJS 代码不工作 - 出了什么问题?

javascript - Jquery remove() 不刷新 div 列表

jquery - 如何使用 JQuery 在 <td> 标签内插入 <div> 标签