Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 移动设备的JQuery下拉列表无法正常工作_Javascript_Jquery_Html - Fatal编程技术网

Javascript 移动设备的JQuery下拉列表无法正常工作

Javascript 移动设备的JQuery下拉列表无法正常工作,javascript,jquery,html,Javascript,Jquery,Html,好的,这就是交易,我是一名学生,正在为课堂制作我的最后一个网站,我们需要在我们的网站上有一些javascript/jquery。我不想发疯,所以我只选择了移动设备的下拉菜单。我唯一的问题是,如果我在导航的“教程”按钮中链接一个页面,它会自动转到该页面,并且不允许我再次点击教程。我希望这是有道理的,如果没有,请告诉我。我的导航标记是 <nav role="navigation" aria-label="Main menu"> <ul role="menubar"> <

好的,这就是交易,我是一名学生,正在为课堂制作我的最后一个网站,我们需要在我们的网站上有一些javascript/jquery。我不想发疯,所以我只选择了移动设备的下拉菜单。我唯一的问题是,如果我在导航的“教程”按钮中链接一个页面,它会自动转到该页面,并且不允许我再次点击教程。我希望这是有道理的,如果没有,请告诉我。我的导航标记是

<nav role="navigation" aria-label="Main menu">

<ul role="menubar">
<li role="menuitem" tabindex="0"><a href="index.html" class="mainmenu">Home</a></li>
<li class="mainmenu" role="menuitem" aria-haspopup=true tabindex="0"><a href="production.html" class="mainmenu">Tutorials</a>

<ul class="submenu" role="menu" aria-hidden=true>

<li role="menuitem" tabindex="-1"><a href="pre-pro.html">Pre-Production</a></li>
<li role="menuitem" tabindex="-1"><a href="production.html">Production</a></li>
<li role="menuitem" tabindex="-1"><a href="post.html">Post</a></li>

</ul>
</li>
<li role="menuitem" tabindex="0"><a href="films.html" class="mainmenu">Films</a></li>
</ul>
</nav>

我找到的JQuery插件如下所示

;(function( $, window, document, undefined )
{
    $.fn.doubleTapToGo = function( params )
    {
        if( !( 'ontouchstart' in window ) &&
            !navigator.msMaxTouchPoints &&
            !navigator.userAgent.toLowerCase().match( /windows phone os 7/i ) ) return false;

        this.each( function()
        {
            var curItem = false;

            $( this ).on( 'click', function( e )
            {
                var item = $( this );
                if( item[ 0 ] != curItem[ 0 ] )
                {
                    e.preventDefault();
                    curItem = item;
                }
            });

            $( document ).on( 'click touchstart MSPointerDown', function( e )
            {
                var resetItem = true,
                    parents   = $( e.target ).parents();

                for( var i = 0; i < parents.length; i++ )
                    if( parents[ i ] == curItem[ 0 ] )
                        resetItem = false;

                if( resetItem )
                    curItem = false;
            });
        });
        return this;
    };
})( jQuery, window, document );
;(函数($,窗口,文档,未定义)
{
$.fn.doubleTapToGo=函数(参数)
{
如果(!(“ontouchstart”在窗口中)&&
!navigator.msmax接触点&&
!navigator.userAgent.toLowerCase().match(/windows phone os 7/i))返回false;
这个。每个(函数()
{
var curItem=假;
$(此).on('click',函数(e)
{
var项目=$(此项);
如果(项目[0]!=curItem[0])
{
e、 预防默认值();
curItem=项目;
}
});
$(文档)。在('单击touchstart MSPointerDown',函数(e)
{
var resetItem=true,
parents=$(e.target).parents();
对于(var i=0;i

这就是我找到插件的地方,以防你需要参考。谢谢你事先的帮助。干杯

来自示例页面的来源:

<script>
$( function()
{
    $( '#nav li:has(ul)' ).doubleTapToGo();
});
</script>

$(函数()
{
$('#nav li:has(ul)')。doubleTapToGo();
});

该插件代码似乎没有以任何有用的方式连接到HTML。它是这样连接的……这就是它的加载方式。是什么告诉插件要对哪些元素进行操作?它初始化在哪里?老实说,我不知道。我所知道的是,这个插件几乎可以完美地工作。我唯一的问题是,当我在我的“a”教程中输入一个页面名称时,我不能只触摸教程,然后再次实际转到该页面。