所以我有这个点击功能切换下拉菜单,但在智能手机上这很慢而且不顺畅。
有没有其他方法可以让这个下拉列表在使用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() {
});
});
答案 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
的尺寸。所以。这可能会让整个动画变得迟钝!
另一个建议:
ID
比class
快。部分原因是ID
应该是唯一的,因此API会在DOM中找到ID
后停止搜索。
如果必须使用class
或attribute
选择器,则可以通过指定可选的上下文参数来提高性能。
<强> 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