2016-06-21 72 views
0

编辑:事实证明,问题不一定是由于我的代码。当我点击导航栏中的链接时,它会转到除Chrome以外的每个浏览器上的mobile/folder/page.html。当我点击chrome中的链接时,出于某种原因它会打开到/mobile/#/mobile/folder/page.html,这就是为什么它不起作用。如果我直接进入该页面,它工作正常。有谁知道如何解决这个问题?点击分区下拉功能不能在iPhone上工作

此代码适用于所有浏览器,适用于Android手机,但不适用于iphone。我曾尝试添加tap和touch,而不是onClick,切换而不是隐藏并显示,将onclick添加到css,并添加光标:指向css的指针,但我找不到解决方案。也许我错了,但我不确定。请帮忙!

https://jsfiddle.net/anthonyparrett7/0bmw79yw/

$(document).ready(function() { 
/* Question and Answer Dropdowns */  
$(".dropdown-link").click(function(e) {   
    e.preventDefault(); 
    var $div = $(this).next('.dropdown-container'); 
    $(".dropdown-container").not($div).hide(); 
    if ($div.is(":visible")) { 
     $div.hide() 
    } else { 
     $div.show(); 
    } 
}); 
$(document).click(function(e){ 
    var p = $(e.target).closest('.dropdown').length 
    if (!p) { 
      $(".dropdown-container").hide(); 
    } 
}); 
}); 
+1

这里是一个小提琴,希望它有助于https://jsfiddle.net/0bmw79yw/6/ –

+0

不幸的是,这对所有浏览器和手机的功能都没有帮助,但对iPhone没有帮助。尽管如此,我已经对我的小提琴和代码进行了修改。感谢那。 –

回答

0

你是不是在页面加载正确调用函数。

尝试$(document).ready(function()启动它,而不是$(document).on("pageinit", "#page-container", function()

看到这个片断:

$(document).ready(function() { 
 
    $(".dropdown-link").click(function(e) { 
 
    var $div = $(this).next('.dropdown-container'); 
 
    $(".dropdown-container").not($div).hide(); 
 
    if ($div.is(":visible")) { 
 
     $div.hide() 
 
    } else { 
 
     $div.show(); 
 
    } 
 
    }); 
 
    $(document).click(function(e) { 
 
    var p = $(e.target).closest('.dropdown').length 
 
    if (!p) { 
 
     $(".dropdown-container").hide(); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="dropdown-1" class="dropdown dropdown-processed"> 
 
    <div class="dropdown-link"> 
 
    <h4>What is a Question?</h4> 
 
    </div> 
 
    <div class="dropdown-container" style="display: none;"> 
 
    <p>Bla bla bla blablablabla words Ipsum</p> 
 
    </div> 
 
</div> 
 

 
<div id="dropdown-2" class="dropdown dropdown-processed"> 
 
    <div class="dropdown-link"> 
 
    <h4>What is a Question 2?</h4> 
 
    </div> 
 
    <div class="dropdown-container" style="display: none;"> 
 
    <p>Bla bla bla blablablabla words Ipsum</p> 
 
    </div> 
 
</div>

+0

谢谢,但这与下拉(隐藏/显示div)功能没有任何关系。我已经修好了我的小提琴,但现在它正常工作。我更新了我的代码,但它仍然无法在iPhone上使用。 –

0

你试过simplier喜欢的东西:

$(document).ready(function() { 
    $(".dropdown-link").click(function(e) { 
     $(".dropdown-container").hide(); 
     $(this).next(".dropdown-container").toggle(); 
    }); 
    $(document).click(function(e) { 
     var p = $(e.target).closest('.dropdown').length 
     if (!p) { 
     $(".dropdown-container").hide(); 
     } 
    }); 
    }); 
+0

和演示:https://jsfiddle.net/543z55o8/ – Ninowis

+0

该演示看起来与我的代码相同。我尝试了你的答案中的代码,它根本不起作用。 –

+0

对不起,我忘了保存更新的小提琴,并最终分享了错误的代码...我更新了我的答案和小提琴;-) – Ninowis