jQuery mobile在点击/快速点击时错过了css效果

时间:2013-05-21 22:22:18

标签: javascript css mobile-safari jquery-mobile

任何在Android / iOS设备上使用过jqm的人都知道,300ms的延迟会导致头痛。 值得庆幸的是,有各种解决方案 - 使用fastclick.js,“vlick”方法和其他选项。

但是,当您应用此解决方案时,css效果无法完成。 这是一个演示: http://nischenspringer.de/jquery/fastclick/demo.html (来自https://github.com/Plaputta/jquery.event.special.fastclick

如果您在计算机上单击演示,则会看到悬停并单击css效果。但是,如果您从iOS设备上单击,则只能在按住300毫秒的按钮时看到这些效果(我假设)。如果您快速点击,应用程序将响应并执行操作,但您将看不到任何CSS更改!

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:2)

工作示例: jsFiddle

您需要做的就是设置jQuery Mobile配置变量: buttonMarkup.hoverDelay

$(document).bind("mobileinit", function(){
    $.mobile.buttonMarkup.hoverDelay = 0;
});

但要小心,mobileinit MUST 在jQuery Mobile之前初始化,如下所示:

<script src="jquery.js"></script>
<script>
    $(document).bind("mobileinit", function(){
        $.mobile.buttonMarkup.hoverDelay = 0;
    });
</script>
<script src="jquery-mobile.js"></script>

答案 1 :(得分:0)

如果版本&gt; = 1.4,请尝试

&lt; li class =&#39; ui-btn&#39; /&GT;

或尝试

&lt; li data-role =&#39;按钮&#39; /&gt;