【发布时间】:2011-11-07 06:53:42
【问题描述】:
我的 Web 应用程序选项卡中有选项卡。
<ul id="tabs">
<li><a href="a.php">aaa</a></li>
<li><a href="b.php">bbb</a></li>
<li><a href="c.php">ccc</a></li>
<li><a href="d.php">ddd</a></li>
<li><a href="e.php">eee</a></li>
</ul>
当用户单击任何选项卡(在同一窗口中)时,我会使用此代码获得淡出效果,然后自动重定向:
$('ul#tabs li a').click(function(e){
if(e.which == 1) {
var link = $(this).attr('href');
$('#content').fadeOut('fast',function(){
window.location = link;
});
}
});
效果很好,因为它忽略了鼠标中键(在新选项卡中打开选项时,不应触发效果)。问题是,如果我使用键盘+鼠标组合打开选项卡,而不是打开新选项卡,它会触发整个效果/重定向代码。
那么,我如何使用 jQuery 检测到这一点:
- cmd + 鼠标左键单击(mac)
- control + 鼠标左键单击(windows/linux)
【问题讨论】:
-
有一个小模块可以自动过滤掉这些事件。
filter-altered-clicks。只需用它包装您的侦听器函数,您就不必手动检查侦听器中的每个键。
标签: jquery keyboard click mouse detection