iOS mouseenter bind只能运行一次

时间:2012-09-10 14:43:59

标签: javascript jquery

在iOS上遇到鼠标事件的一些问题。用户点击某个项目,然后可以点按以删除显示的下拉菜单。由于我的客户的网站需要表示大量的项目,所以我使用下拉列表至关重要。这是一个特定的请求,该网站也适用于iOS。问题是,当用户点击项目时它可以正常工作,但是当他们点击并尝试点击完全相同的下拉菜单时,它不起作用。它确实有效但是如果他们打开一个项目,然后再打开它,打开另一个项目,然后打开第一个项目。

正如您将从脚本中看到的那样,我试图解除所有事件的绑定,然后重新绑定它们,希望它会导致脚本重新开始工作。它也适用于桌面,虽然有一些bug。任何帮助这个在iOS上工作的帮助非常感谢,我已将其作为jsFiddle附加。 对我的代码的任何评论都表示赞赏 - 总是希望改进!

http://jsfiddle.net/andrewkhan1/pLp2X/54/

提前干杯

1 个答案:

答案 0 :(得分:1)

您可以尝试执行以下操作:

1)请勿在iOS CSS中使用:hover进行导航

2)使用CSS .hover

进行下拉切换

3)处理导航外的点击。像这样:

$(document).bind('touchstart', function(e) {
    var target = (e.originalEvent.changedTouches ? e.originalEvent.changedTouches[0] : e).target;
    if(!$(target).parents('#navigation').length) {
        // hide dropdowns
        $('#navigation').find('.hover').removeClass('hover');
    }
});