jQuery在移动设备上点击功能缓慢(滞后)

时间:2014-07-06 17:23:13

标签: javascript jquery mobile

所以我有这个点击功能切换下拉菜单,但在智能手机上这很慢而且不顺畅。

有没有其他方法可以让这个下拉列表在使用jQuery的任何移动设备上顺利过渡?

(我听说过“vclick”,但却找不到如何使这项工作。

$j('.dropdown-menu').click(function() {
$j('.dropdown-menu').not(this).children('ul').slideUp("slow");
$j(this).children('ul').slideDown("slow");
});


$j('.dropdown-menu').blur(function() {
$j('.dropdown-inside').hide('slow', function() {
});
});

3 个答案:

答案 0 :(得分:2)

尝试点击Id而不是课程。上课总是很慢。因此,假设您的下拉列表的ID为'myDropdown',那么就像

一样
$j('#myDropdown').click(function(){
    //your code here
});

答案 1 :(得分:2)

第一部分可以简化为:

$j('.dropdown-menu').click(function() {
    $j('.dropdown-menu').not(this).children('ul').slideToggle(2000);
});

另外,请尝试将隐藏内容包装在div中并为其width。单击div时,它会在快速替换它之前将其拉出位置以进行测量,因为在显示之前JQuery不知道隐藏div的尺寸。所以。这可能会让整个动画变得迟钝!

另一个建议:

IDclass快。部分原因是ID应该是唯一的,因此API会在DOM中找到ID后停止搜索。

如果必须使用classattribute选择器,则可以通过指定可选的上下文参数来提高性能。

<强> Credits

答案 2 :(得分:1)

<强>原因
根据Google
...移动浏览器将等待您点击按钮以触发点击事件的大约300毫秒。原因是浏览器正在等待您是否实际执行双击。

<强>解决方案
 1.使用fastclick.js摆脱这300ms滞后 https://github.com/ftlabs/fastclick
 2.使用应用程序缓存加速负载
https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache