这些“手风琴子菜单”适用于 Chrome 和 Firefox,但不适用于 iPhone。
我建立了一个网站,其中在较小的屏幕上包含“offcanvas”导航菜单。用户单击“热狗按钮”,导航菜单从左侧滑到屏幕上......到目前为止效果很好。
一些导航元素包含子菜单。对于这些,我使用了 bootstrap 的手风琴标记。用户单击箭头,“子菜单”展开。
问题
我在linux上使用chrome进行开发。这种机制在 chrome、firefox 和我能接触到的所有浏览器以及我个人的 Android 手机上都能完美运行。它也适用于 responsinator.com。然而,由于我没有 Safari,也没有 iPhone,所以我无法直接在 iPhone 上测试此功能。我正在努力获得 iPhone 模拟器... 在那之前,其他一些人在 iPhone 上看过这个,我被告知“子菜单”根本不起作用。当用户单击箭头时,没有任何反应...
这是包含“子菜单”的“菜单项”的摘录:请注意我正在使用“数据切换”和“数据目标”属性:
<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 -->
我真的不知道接下来要尝试什么:类似的问题以“css冲突”或有关
.click()
的iphone问题结束,但我没有使用它:我正在使用
data-toggle/data-target
。我正在考虑放弃“数据目标”标记,转而手动调用 on('click', ... )
事件,但我宁愿不...顺便说一句,如果相关的话,我会在页面底部调用它:
<script src="/assets/dist/js/bootstrap.min.js"></script>
这是“bootstrap.js v3.0.0”。
还有其他线索吗?最近有类似问题的直接经验吗?
预先感谢您的帮助。
<a>
上。所以这有效:
<a data-toggle="collapse" data-target="#collapse1" href="#collapse1">
<i class="pull-right icon-chevron-right mobile-nav-icon"></i>
</a>
但这并不:
<a data-toggle="collapse" data-target="#collapse1">
<i class="pull-right icon-chevron-right mobile-nav-icon"></i>
</a>
[data-toggle~="collapse"] {
cursor: pointer;
}
<button data-toggle="collapse" data-target="#collapse1">
<i class="pull-right icon-chevron-right mobile-nav-icon"></i>
</button>
希望这有帮助。
cursor: pointer;
$('.divClassName').on('click touchstart', function () {
$($(this).data('target')).collapse('toggle');
});
div
,您可以使用以下 jQuery 方法(已在 ios 8 上测试):
<div class="collapse-header" data-target="#collapse_0">
Click this element...
</div>
<div id="collapse_0">
...to collapse this element.
</div>
<script>
$('.collapse-header').on('click', function () {
$($(this).data('target')).collapse('toggle');
});
</script>
我在我的应用程序中这样做了:
a[data-toggle="collapse"]{
cursor:pointer;
}
它解决了问题。
MDN 文档中这样说:
“Safari Mobile 7.0+(也可能是早期版本)存在一个错误,即通常不具有交互性(例如)的元素上不会触发单击事件,并且这些元素也没有直接附加到元素本身的事件侦听器(即正在使用事件委托)。请参阅此实时示例以进行演示。另请参阅 Safari 的有关使元素可点击的文档以及“可点击元素”的定义”
参考文献:
[isAnimated]="false"
[email protected]/dist/css/bootstrap.min.css并且iPhone的这个问题仍然存在。对于直到今天才经历过这种情况的程序员来说。这是我找到的解决方案。
$(document).ready(function() {
// Toggle the accordion
$('.accordion-button').on('click', function() {
var accordionContent = $(this).closest('.accordion-item').find('.accordion-collapse');
accordionContent.slideToggle(200);
});
});
我几乎放弃使用 bootstrap 手风琴,想使用普通的手风琴和 jquery。当奇迹发生时:) 上面的 jquery 适用于我的 bootstrap 手风琴。希望这篇文章可以帮助到你!