下拉开关不能正常工作为Firefox-Android

Dropdown toggle not working properly for Firefox-Android

本文关键字:工作 Firefox-Android 常工作 开关 不能      更新时间:2023-09-26

我有一个手动触发的下拉菜单,以便在它外部执行任何点击时关闭它(并且它是打开的)。

这段代码可以在所有浏览器中运行,除了Android的Firefox。为什么呢?
这就像事件参数没有到达函数

     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>

在黑暗中射击:FF在"这个"上被绊倒了。尝试将"$(this)"作为参数传递给dropdownClicked函数,并将其命名为"X"。然后试试:X.toggleClass('open');

var dropdownClicked = function(event, X){
    X.toggleClass('open');
};
$('.dropdown').click( function(event){ dropdownClicked(event, $(this)) });
http://jsfiddle.net/8d25m/