我有一个手动触发的下拉列表,以便当在其外部执行任何单击时将其关闭(并且它是打开的)。
这段代码可以在所有浏览器中运行,除了Firefox for Android。为什么会这样呢?
这就像事件参数没有到达函数ok一样。
var dropdownClicked = function(event){
$('.dropdown').toggleClass('open'); //IT WORKS FOR ALL OF THEM
//$(this).toggleClass('open'); //IT WORKS FINE IN EVERY BROWSER BUT FIREFOX-ANDROID
//$(this)[0].toggleClass('open'); //IT WORKS JUST FOR FIREFOX-ANDROID
event.stopPropagation();
};
$('.dropdown').click( function(event){ dropdownClicked(event) });然后我有了这个版本,它适用于所有这些工具:
$('.dropdown').click(function(event){
$(this).toggleClass('open'); //Works for all of them
event.stopPropagation();
});如果你需要html的话。这就是它:
<ul class="nav navbar-nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">Select projects <span class="caret"></span></a>
<ul class="dropdown-menu" aria-labelledby="download">
<li>
<a id="show-game" class="show-tag">Game Development</a>
</li>
<li>
<a id="show-web" class="show-tag">Web Development</a>
</li>
</ul>
</li>
</ul>发布于 2014-06-28 23:23:58
在黑暗中拍摄: FF在“这个”上被绊倒了。尝试将“$( dropdownClicked )”作为参数传递给您的dropdownClicked函数,并将其命名为"X“。然后尝试: X.toggleClass('open');
var dropdownClicked = function(event, X){
X.toggleClass('open');
};
$('.dropdown').click( function(event){ dropdownClicked(event, $(this)) });http://jsfiddle.net/8d25m/
https://stackoverflow.com/questions/24468097
复制相似问题