Bootstrap-select.js - 在 select 选择一个选项后,整个 select 消失
Bootstrap-select.js - After selecting an option, entire select disappears
我正在尝试为我正在开发的网站(Magento 版本 1.9.1.0)设置 bootstrap-select.js,但我遇到了一些我无法解决的问题。
一切都完美加载,但是当我 select 在下拉 select 列表中选择一个选项时,整个 select 会因为像这样在上面添加 element.style 而消失:
style="display:none;"
在 FireBug 中它说:
element.style {
display: none;
}
在此处查看视觉图像:http://i.imgur.com/cg1jkOp.jpg?1
问题是我不知道这个样式是从哪里来的,所以我决定检查 FireBug 中的 'Break on attribute change' 看看它说了什么。代码来自 Jquery (jquery-2.1.3.min.js),如您在此图中所见:http://i.imgur.com/Jbu8TCx.jpg?1
这是我在 <head>
部分中的内容:
<link rel="stylesheet" href="http://localhost/sg-magento/skin/frontend/ultimo/default/css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="http://localhost/sg-magento/skin/frontend/ultimo/default/css/bootstrap/bootstrap-select.min.css">
<script type="text/javascript" src="http://localhost/sg-magento/js/infortis/jquery/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="http://localhost/sg-magento/skin/frontend/ultimo/default/js/bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" src="http://localhost/sg-magento/skin/frontend/ultimo/default/js/bootstrap/bootstrap-select.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.selectpicker').selectpicker();
});
</script>
我从这里去哪里?我该如何解决这个问题?看起来是一件小事,但它现在真的让我心烦意乱。想了很久了。
希望有人愿意帮忙。
谢谢。
我有类似的问题,当 select 在提交和重新渲染 Backbone 模板时消失。在我的例子中调用 $('.selectpicker').selectpicker('render');固定它。
这是因为Bootstrap和Prototype冲突。查看更多详细信息 here。
新建一个JS文件,在里面添加如下代码。
if (Prototype.BrowserFeatures.ElementExtensions) {
var disablePrototypeJS = function (method, pluginsToDisable) {
var handler = function (event) {
event.target[method] = undefined;
setTimeout(function () {
delete event.target[method];
}, 0);
};
pluginsToDisable.each(function (plugin) {
jQuery(window).on(method + '.bs.' + plugin, handler);
});
},
pluginsToDisable = ['collapse', 'dropdown', 'modal', 'tooltip', 'popover'];
disablePrototypeJS('show', pluginsToDisable);
disablePrototypeJS('hide', pluginsToDisable);}
玩得开心:)
$( ".dropdown-menu > ul > li" ).click(function() {
$( '.bootstrap-select').attr('style', '');
$( this ).parent( '.bootstrap-select').attr('style', '');
});
这将覆盖导致此问题的任何冲突。我不相信之前的任何一个答案都是正确的。并且我的 DEF 不是答案。但它会解决问题,直到可以花更多时间找到冲突的真正根源。原型可能是原因,但原型答案不起作用!
我正在尝试为我正在开发的网站(Magento 版本 1.9.1.0)设置 bootstrap-select.js,但我遇到了一些我无法解决的问题。
一切都完美加载,但是当我 select 在下拉 select 列表中选择一个选项时,整个 select 会因为像这样在上面添加 element.style 而消失:
style="display:none;"
在 FireBug 中它说:
element.style {
display: none;
}
在此处查看视觉图像:http://i.imgur.com/cg1jkOp.jpg?1
问题是我不知道这个样式是从哪里来的,所以我决定检查 FireBug 中的 'Break on attribute change' 看看它说了什么。代码来自 Jquery (jquery-2.1.3.min.js),如您在此图中所见:http://i.imgur.com/Jbu8TCx.jpg?1
这是我在 <head>
部分中的内容:
<link rel="stylesheet" href="http://localhost/sg-magento/skin/frontend/ultimo/default/css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="http://localhost/sg-magento/skin/frontend/ultimo/default/css/bootstrap/bootstrap-select.min.css">
<script type="text/javascript" src="http://localhost/sg-magento/js/infortis/jquery/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="http://localhost/sg-magento/skin/frontend/ultimo/default/js/bootstrap/bootstrap.min.js"></script>
<script type="text/javascript" src="http://localhost/sg-magento/skin/frontend/ultimo/default/js/bootstrap/bootstrap-select.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.selectpicker').selectpicker();
});
</script>
我从这里去哪里?我该如何解决这个问题?看起来是一件小事,但它现在真的让我心烦意乱。想了很久了。
希望有人愿意帮忙。
谢谢。
我有类似的问题,当 select 在提交和重新渲染 Backbone 模板时消失。在我的例子中调用 $('.selectpicker').selectpicker('render');固定它。
这是因为Bootstrap和Prototype冲突。查看更多详细信息 here。 新建一个JS文件,在里面添加如下代码。
if (Prototype.BrowserFeatures.ElementExtensions) {
var disablePrototypeJS = function (method, pluginsToDisable) {
var handler = function (event) {
event.target[method] = undefined;
setTimeout(function () {
delete event.target[method];
}, 0);
};
pluginsToDisable.each(function (plugin) {
jQuery(window).on(method + '.bs.' + plugin, handler);
});
},
pluginsToDisable = ['collapse', 'dropdown', 'modal', 'tooltip', 'popover'];
disablePrototypeJS('show', pluginsToDisable);
disablePrototypeJS('hide', pluginsToDisable);}
玩得开心:)
$( ".dropdown-menu > ul > li" ).click(function() {
$( '.bootstrap-select').attr('style', '');
$( this ).parent( '.bootstrap-select').attr('style', '');
});
这将覆盖导致此问题的任何冲突。我不相信之前的任何一个答案都是正确的。并且我的 DEF 不是答案。但它会解决问题,直到可以花更多时间找到冲突的真正根源。原型可能是原因,但原型答案不起作用!