Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么引导按钮下拉菜单在iOS上不起作用?_Javascript_Html_Css_Twitter Bootstrap - Fatal编程技术网

Javascript 为什么引导按钮下拉菜单在iOS上不起作用?

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">

看起来连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"><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。知道如何解决它吗?要获得好的回答,最好添加一些代码的解释。