2012-05-27 127 views
6

当我在<a>标签上使用.click()时,该事件仅在单击元素时起作用。否则,如果用户进行了右键单击>在新窗口中打开或在新选项卡中打开,则不会触发click()事件。。'在新标签页/窗口中打开时发生.click()事件

因此,我的问题是......当用户在右键点击>在新标签页/窗口中打开时,如何触发click()事件?

下面是HTML:

<a href="url">Click Me</a> 

这里是JS:

$("a").click(function(){ 
    alert('You clicked me!'); 
}); 
+0

ummm ..这只是一个右键单击,而不是'在新窗口/选项卡中打开。 –

+1

我不认为这是可能的。我看到的唯一方法是捕获鼠标右键单击并手动触发'click'事件。 – VisioN

+0

我不认为这是可能的。我认为其中一个原因是您不希望网站能够跟踪您访问的外部链接。 – gigadot

回答

2

你可以试试这个代码,但请记住,改变UI是不是一个好IDEIA:

var addEvent = (document.addEventListener) ? 
    function(target,event,fn){ 
     if(target) return target.addEventListener(event,fn,false); 
    }: 
    function(target,event,fn){ 
     if(target) return target.attachEvent(('on' + event),fn); 
    }, 
allLinks = document.links || document.getElementsByTagName('a'); 
for(var i=0;i<allLinks.length;i++) 
    addEvent(allLinks[i],'mouseup',function(e){ 
     var e = e || event; 
     if(e.which===3){ 
      alert('Open in new tab/window'); 
      e.preventDefault(); 
      return false; 
     } 
    }); 
+0

这看起来像它认为所有的点击是一个“在新标签打开”事件。 – dlsso

相关问题