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