Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
36
rated 0 times [  39] [ 3]  / answers: 1 / hits: 49626  / 11 Years ago, fri, november 8, 2013, 12:00:00

These accordion submenus work in chrome and firefox, but not on an iphone.



I have built a site which includes an offcanvas navigation menu on smaller screens. The user clicks the hot dog button, and the navigation menu slides onto the screen from the left... that works great so far.



Some of the navigation elements contain submenus. For those, I used bootstrap's accordion markup. The user clicks an arrow, and the submenu expands.



enter



The Problem



I develop using chrome on linux. This mechanism works perfectly in chrome, firefox, and every browser I can get my hands on, as well as on my personal android phone. It also works on responsinator.com. However, since I don't have Safari, nor an iPhone, I have not been able to test this functionality directly on an iphone. I am working on getting an iPhone emulator...



Until then, some other people have looked at this on an iPhone, and I am told the submenus do not work at all. When the user clicks the arrow, nothing happens...



Here is an excerpt of a menu item containing a sub-menu: please note I am using the 'data-toggle' and 'data-target' attributes:



<div class=panel panel-default>
<!-- The Trigger -->
<div class=panel-heading>
<h4 class=panel-title>
<a href=view.php?cms_nav_id=1 name=about>
About</a>
<a data-toggle=collapse data-target=#collapse1>
<i class=pull-right icon-chevron-right mobile-nav-icon></i>
</a>
</h4>
</div>

<!-- Populated submenus: -->
<div id=collapse1 class=panel-collapse collapse>
<div class=panel-body>
<a href=view.php?cms_nav_id=7 name=ohioimprovementprocess>Ohio Improvement Process</a>
</div>
<div class=panel-body>
<a href=view.php?cms_nav_id=8 name=org/orgbeliefs>Organization Beliefs</a>
</div>
</div>

</div><!-- /.panel -->


I really don't know what to try next: Similar questions have ended with a css conflict or iphone problems regarding .click(), but I am not using that: I am using data-toggle/data-target. I am considering abandoning the 'data-target' markup in favor of manually invoking an on('click', ... ) event, but I would rather not...



By the way, I call this at the bottom of my page if that's relevant:



<script src=/assets/dist/js/bootstrap.min.js></script>


Which is 'bootstrap.js v3.0.0' .



Does anyone have any other clues? Any recent direct experience with an issue like this?



Thanks in advance for your help.


More From » jquery

 Answers
9

So I think I figured this out: my original markup relied solely on the data-target element, but that is apparently not enough. Safari (on iPhone) seems to also need the href attribute (which really should be there on an <a> anyway. So this works:



<a data-toggle=collapse data-target=#collapse1 href=#collapse1>
<i class=pull-right icon-chevron-right mobile-nav-icon></i>
</a>


But this does not:



<a data-toggle=collapse data-target=#collapse1>
<i class=pull-right icon-chevron-right mobile-nav-icon></i>
</a>

[#74403] Thursday, November 7, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
colby

Total Points: 311
Total Questions: 102
Total Answers: 102

Location: Taiwan
Member since Mon, Sep 6, 2021
3 Years ago
;