【发布时间】:2016-07-04 19:25:45
【问题描述】:
我试图在 Collapse 原型 bootstrap.js 中覆盖以下 var:
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
有了这个
var actives = this.$parent && this.$parent.find('.panel').find('.in, .collapsing')
这样做的原因是当一个手风琴打开时所有手风琴都不会折叠。 为此,它们通常必须直接位于作为其数据父级的父级 div 下。 当使用 .find 而不是 .children 时,它们可以嵌套在 s 中(意味着它们不需要直接位于 data-parent 的下一级),这是我正在尝试构建的网站的正式要求。
我宁愿不改变 bootstrap.js(或缩小版),而是用 bootstrap.js 之后加载的 custom.js 覆盖它
到目前为止,我的方法是这样的:
// save original Fuction to tmp
var tmp = $.fn.collapse.Constructor.prototype.show;
//set prototype to new function
$.fn.collapse.Constructor.prototype.show = function () {
//set var
var actives = this.$parent && this.$parent.find('.panel').find('.in, .collapsing')
//call saved function
tmp.call(this);
}
但不幸的是,这不起作用。我在http://www.bootply.com/gSm4qppP3Q#下做了一个小提琴
行为应该是:如果打开了一个手风琴,则所有其他具有相同数据父级的手风琴都应该关闭。 我什至尝试重新定义整个函数,但这并没有成功,因为控制台显示“非法构造函数错误”
所以作为更一般的方法: 如何从不同的 js 脚本更改 bootstrap.js 原型函数中的 var?
提前致谢
【问题讨论】:
-
您问题的全部内容必须在您的问题中在中,而不仅仅是链接。特别是,我们需要查看您的 HTML。
标签: javascript twitter-bootstrap