javascript - 下拉菜单仅在移动设备上闪烁并消失

标签 javascript html css

我在服务导航项下的导航栏内有一个子菜单。

预期的行为是一旦服务被点击,子菜单就会出现。实际的行为是:单击服务后,子菜单闪烁并消失。

  <nav id="main-menu">
                    <ul class="sf-navbar">
                        <li>
                            <a href="#home">
                                <div data-i18n="nav.home">Home</div>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <div data-i18n="nav.services.title">Title</div>
                            </a>

                            <ul>
                                <li>
                                    <a href="#service">
                                        <div data-i18n="nav.services.ourservices">Our Services</div>
                                    </a>
                                </li>
                                <li>
                                    <a href="#how">
                                        <div data-i18n="nav.services.howwework">How We Work</div>
                                    </a>
                                </li>
                                <li>
                                    <a href="#areascontainer">
                                        <div data-i18n="servicearea.title">Service Area</div>
                                    </a>
                                </li>
                                <li>
                                    <a href="#why">
                                        <div data-i18n="why.title">Why Choose Us</div>
                                    </a>
                                </li>
                            </ul>
                        </li>
.....
</nav>

JS代码:

wei.header = {

        init: function(){

            wei.header.superfish();

        },             

        superfish: function() {

            $( main_menu ).superfish({

                popUpSelector   : 'ul',
                delay   : 250,
                speed   : 350
            });

        },

...

我试过调试它,但不知道从哪里开始。

这是我正在处理的代码。 http://weistudio.com.au/

最佳答案

出于某种原因,SuperFish 在 touchEnd 上失败了事件并且仅适用于当您位于页面最顶部时显示的菜单(如果您稍微滚动页面它会起作用 - 这个菜单有一个克隆)。

为了防止它,你可以使用类似 <a href="#" onTouchEnd="(function (e) {e.preventDefault()})(event)"> 的东西. 或者将其移至外部方法并像这样使用(因为您已经在使用 jQuery):

$('.header-container').on('touchend', '.sf-with-ul', function (e) {e.preventDefault()})

关于javascript - 下拉菜单仅在移动设备上闪烁并消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52231343/

相关文章:

html - 为什么网页在不同的文件夹中显示不同?

html - CSS - 包含 float 问题 - 为什么?

css - 如何向 IntelliJ 添加 Stylus "@import"支持

html - 如何使用内联 block 属性将文本放在背景图像下方

javascript - 页面上的 Twitter Bootstrap navbar-fixed-top 重新定位

javascript - Dropzone js错误 "Uncaught TypeError: $(...).dropzone is not a function"

javascript - 需要使用 JavaScript 统计 HTML 页面上的某些项目

javascript - 单击更改 React Native Image 源

javascript - $broadcast 和 $on 不适用于基于 ng-if 的模板

html - 改变棘轮模态尺寸和滑动位置