2014-10-02 87 views
0

我有一个jQuery的功能,打开移动浏览器的菜单。它会打开,但仅在点击两次后才会打开。我正在使用jQuery手机,所以我改变了我的;jquery函数只能运行2次点击后

$(document).ready(function(){

读取

$(document).on('pageinit', function(){

的功能的问题是;

function showMobileDrop(){ 
    $('.mobileDrop').show("slide", {direction:"up"}, 1000); 
    } 
    $(function(){ 
    $('.cMenu').click(showMobileDrop); 
    }); 

这与我的页面上的此菜单进行交互。移动菜单是隐藏的,除非页面宽度不足700px;

<div class="mobileMenu"> 
    <a href="#" class="cMenu">Menu<img src="images/icons/menu.png"></a> 
    <ul class="mobileDrop"> 
     <a href="#closeMenu"><li>Close</li></a> 
     <li><a href="#index">HOME</a></li> 
     <li><a href="#classical">CLASSICAL</a></li> 
     <li><a href="#weddings">WEDDINGS</a></li> 
     <li><a href="#events">EVENTS</a></li> 
     <li><a href="#americana">AMERICANA</a></li> 
     <li><a href="#instruction">INSTRUCTION</a></li> 
    </ul> 
    </div> 

所以正如我所说的那样,但只有当锚链接类=“cMenu”被点击两次。不知道我是否应该使用pagechange或其他不同的东西。我基本上试图编写我添加的效果,这样他们就可以像在正常的文档环境中一样工作,但允许它们在jquery移动多页面模型中运行。

+0

是否发生第一页上吗? – Omar 2014-10-02 20:23:46

+0

在'a'上是否还有一些':hover' css? Rhis可能值得一读:http://www.prowebdesign.ro/how-to-deal-with-hover-on-touch-screen-devices/ – Pevara 2014-10-02 20:26:38

回答

1

由于被点击的元素是<a>,您应该防止默认行为(在#之后的链接之后),这可能会干扰您的功能。

事情是这样的:

function showMobileDrop(event) { 
    event.preventDefault(); 
    $('.mobileDrop').show("slide", {direction:"up"}, 1000); 
} 
$(function() { 
    $('.cMenu').click(showMobileDrop); 
});