我的菜单结构如下
<ul>
<li>
<a href="#" rel="profile">Profile</a>
</li>
<li>
<a href="#" rel="settings">Settings</a>
</li>
</ul>
每当我点击标签时,我的函数都会获取rel属性,并在其上运行eval()函数,即
$('ul li a').die('click');
$(document).on('click','ul li a',function(event){
eval($(this).attr('rel'))['init']();// open the settings.init() function
});
这适用于所有浏览器,但是当我在Chrome中用鼠标中间点击时,该功能会在同一窗口中重定向,而对于其他浏览器,它会在新标签页中打开
当我点击中间点时,如何让它在Chrome的新标签页中打开?
答案 0 :(得分:2)
首先查看是否调用了事件处理程序。如果中间点击没有引发事件,那么它可能是浏览器或jQuery中的错误。我怀疑window.open方法在Chrome上的工作方式略有不同。
要在链接的标签页中打开新页面,您可以指定target =&#39; _blank&#39;或target =&#39; tab&#39;而不是在JS中使用开放。我的意思是,你可以改变锚标签而不是调用window.open。
$('a').each(
function(){
// some condition evaluation
$(this).attr('href',destURL);
$(this).attr('target','_blank');
});
通过这样做,您可以简化代码,并且可以调试并查看元素检查器中的所有内容。
好处是,如果您没有指定目标,用户可以在任何他/她想要的地方打开链接。
答案 1 :(得分:0)
检查您是否未点击Chrome 28中间点击错误https://code.google.com/p/chromium/issues/detail?id=236835。它已在Chrome 29中修复,现在处于测试阶段。