我有一个手动触发的下拉列表,以便在其外部执行任何点击时关闭它(并且它已打开)。
此代码适用于所有浏览器,但适用于Android版Firefox。那是为什么?
这就像事件参数没有达到函数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>
答案 0 :(得分:1)
在黑暗中拍摄:FF正在绊倒“这个”。尝试将“$(this)”作为参数传递给dropdownClicked函数,并将其称为“X”。然后尝试:X.toggleClass('open');
var dropdownClicked = function(event, X){
X.toggleClass('open');
};
$('.dropdown').click( function(event){ dropdownClicked(event, $(this)) });