jQuery selectmenu更改功能无法在iPhone上运行

时间:2014-11-04 13:23:53

标签: javascript jquery ios jquery-ui select-menu

我在我的网页中使用了jquery selectmenu功能,但它似乎无法在ios浏览器上正常工作。

在我选择菜单项后,菜单消失但我的更改:功能根本不会触发。它只是再次隐藏菜单。

我的代码如下:

$('#adultMenu').selectmenu({
    change: function() {
        adultval = $(this).val() + ' Adults. ';
        var inputvalue = adultval + childval + youthval + infantval;  
        $('#personInput').val(inputvalue);
    }
});

我认为这在iOS上是一个非常常见的问题,但我很久没有在论坛上找到答案了。

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

来自未来的亲人:这是我到目前为止所发现的: 使用新结论编辑

经过更多的实验,我找到了原因。当您使用菜单中没有的内容设置选择菜单的值时会发生这种情况。以下说明了这个问题:

var $fubar = $('.fubar');

$fubar.selectmenu({
    'change': function () {
        $fubar.val('Pancakes');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<select class="fubar">
    <option>Cake</option>
    <option>Ice Cream</option>
</select>

答案 1 :(得分:0)

如果您使用的是FastClick库,则可能是问题所在。我必须根据此评论禁用FastClick以进行选择:https://github.com/ftlabs/fastclick/issues/268#issuecomment-65022184。对于selectmenu,我在if:

中添加了一个条件
if (targetElement.nodeName.toLowerCase() == 'select' || targetElement.hasClass('ui-menu-item')) {
    return false;
  }