2012-09-03 53 views
1

我正在使用Twitter Bootstrap的“拆分按钮”下拉菜单,并且包含了明显需要的引导程序javascript,称为bootstrap-button.js,对于我所有的尝试,我都无法使补丁程序下降。然后我开始删除可能会干扰并猜测的JS文件?这是bootstrap-button.js文件是罪魁祸首!这有什么意义?使这些框下拉的唯一方法是不包含下拉JS文件?Bootstrap的javascript干扰按钮下拉菜单?

有没有其他人看到过这个问题?有关如何解决此问题的任何建议或如何解决此问题?

+0

您是否检查过JS控制台以查找错误? – Thor84no

+0

是的,没有错误。 – ken

回答

1

这是有可能发生的bootstrap.min.js,其中大部分人下载,已经包括了所有的插件一个常见的错误,并因为对JavaScript中的文档插件明确要求,包括单个文件,人不知不觉地加载他们想要两次的插件。

许多插件的行为都与您描述的行为类似,如果它们在页面中加载两次。其原因是插件的事件监听器以这种方式附加到页面上,以允许同时连接两个相同的事件监听器。因此,在双重负载情况下会发生什么情况是,当组件发生点击时,将调用show(),然后调用hide()方法(或toggle() x 2),从而中和预期结果。

我认为直接下载各个JavaScript插件的原因的部分原因是从2.1中的文档中删除,以便减少导致此错误的途径。不幸的是,它似乎没有完全消除它。

+0

不幸的是,我没有使用bootstrap.min.js。我仍然对这种冲突持开放态度,但它将来自wordpress环境中的另一个插件。 – ken

+0

事实上,我现在看到,我使用的wordpress主题中有“script.bootstrap.min.js”。有趣的是,他们还没有意识到他们使用它,尽管是旧版本。我想有没有简单的方法来命名空间除了一个花药在那里? – ken

+0

@ken那真是一个意外的惊喜!如果这个([script.bootstrap.min.js](http://www.wpsubscribers.com/pagelines/script.bootstrap.min.js))是主题中的版本,那么它看起来像事件的命名空间不幸的是,听众与当前版本完全相同。但是,一种选择是在新的加载器之前禁用旧的侦听器。像'$('body,html')。off('click.dropdown');'。但是由于有大量的插件,最好的办法就是看看是否有更新版本的主题。否则,你会遇到更多这样的冲突。 – merv