Javascript 为什么引导按钮下拉菜单在iOS上不起作用?
看起来连iOS都不起作用。在iPhone或iPad上,您似乎无法从中选择项目Javascript 为什么引导按钮下拉菜单在iOS上不起作用?,javascript,html,css,twitter-bootstrap,Javascript,Html,Css,Twitter Bootstrap,看起来连iOS都不起作用。在iPhone或iPad上,您似乎无法从中选择项目 是否对此进行了修复?您需要在文件中添加自定义jquery。如果要使用它,请使用: <div class="container"> <div class="btn-group lt category_bg"> <p>Adults</p> <button class="btn btn-large" data-toggle="dropdown">
是否对此进行了修复?您需要在文件中添加自定义jquery。如果要使用它,请使用:
<div class="container">
<div class="btn-group lt category_bg">
<p>Adults</p>
<button class="btn btn-large" data-toggle="dropdown"><cite>0</cite> <span class="caret"></span></button>
<ul class="dropdown-menu ">
<li id='adult_0' onClick="flight_user(this.id)"><a href="#" >0</a></li>
<li id='adult_1' onClick="flight_user(this.id)"><a href="#" >1</a></li>
<li id='adult_2' onClick="flight_user(this.id)"><a href="#" >2</a> </li>
<li id='adult_3' onClick="flight_user(this.id)"><a href="#">3</a></li>
<li id='adult_4' onClick="flight_user(this.id)"><a href="#">4</a></li>
</ul>
</div>
</div>
<script src="js/jquery.js"></script>
<script src="js/bootstrap-dropdown.js"></script>
<script>
function flight_user(selected){
var value = jQuery("#" + selected).find('a').text();
jQuery("#" + selected).parent().parent().find('cite').html(value);
}
</script>
如果您愿意,我可以为您提供这方面的实时演示。正如github上的许多问题评论所指出的,有一个快速修复方法: 在关闭html标记之前添加此脚本:
$('body').on('touchstart.dropdown', '.dropdown-menu', function (e) {
e.stopPropagation();
});
我已经在ios5和ios6上测试了上述方法。它很有魅力
如果您希望修改引导javascript,可以从文件底部附近的clearMenus html绑定中删除touchstart.dropdown.data-api,而不是上面的修复
改变这个
$('html')
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
对此
$('html')
.on('click.dropdown.data-api', clearMenus)
这个脚本解决了这个问题。只需添加此代码
$(document).on('click', 'a.your-drop-down-link', function(event){
event.stopPropagation();
event.preventDefault();
if(event.handled !== true) {
if ( $(this).parent().hasClass('open') ) {
$(this).parent().removeClass('open');
}else{
$(this).parent().addClass('open');
}
event.handled = true;
} else {
return false;
}
});
实际上,bootstrap只提供了下拉列表,而不是可选的下拉列表。我也面临同样的问题,bt没有得到解决方案,所以我这样做了,答案听起来不正确。我有附加到锚定标签的事件,它们在桌面上工作。您建议为列表项设置额外的事件处理程序。你知道为什么吗?看,我是这样做的,所以我给你答案。如果你找到了更好的方法,那就太好了。如果你解决了这个问题,请发布答案,这对我来说可能会更好:-我认为我们不能只用引导js来做这件事。我们必须为此添加一些额外的代码。我知道我必须添加自定义jQuery代码来处理事件。我的事件处理程序是使用addEvent/addEventListener函数分配给锚定标记的。然而,如果这是一个事件处理程序问题,那么下拉列表在桌面上也应该失败,但事实并非如此。不管怎样,我确实尝试了你的建议,但没有结果。你提到的引导演示在我的iPhone上确实有效。你能发布一些代码让我们看看你的问题是什么吗?谢谢@WesleyMurch为我重新发布。对于回答的错误用法,我深表歉意,我还是个新手。看起来2.1.1版本中有一个bug:仍然是这样吗?我在iOS 7中仍然面临这个问题。我使用的是Bootstrap 3.3.4和jQuery 1.11.3。知道如何解决它吗?要获得好的回答,最好添加一些代码的解释。