【问题标题】:How to trigger jquery "click" event even when the user clicked "middle button" or right click -> open in a new tab即使用户单击“中间按钮”或右键单击->在新选项卡中打开,如何触发jquery“单击”事件
【发布时间】:2014-05-22 10:31:51
【问题描述】:

我有一个 javascript,它假设当用户点击它时将通知标记为已读。

javascript在<a>标签中触发,脚本返回true后,将用户重定向到另一个带有target="_blank"的页面;

但是如果用户使用他的鼠标中键,或者使用他的右键单击 -> 在新选项卡中打开, 它不会触发事件。

我知道我可以只创建一个“链接”并且不允许在新选项卡中打开选项,但我宁愿不这样做。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    使用 mousedown 事件包括按下了哪个按钮

    $("someTagOrID").on('mousedown', function(e) { 
       if( (e.which === 1) ) {
         alert("left button");
       }if( (e.which === 3) ) {
         alert("right button");
       }else if( (e.which === 2) ) {
          alert("middle button"); 
       }
    });
    

    【讨论】:

      【解决方案2】:

      我的答案的来源和你的问题是重复的:How to distinguish between left and right mouse click with jQuery

      虽然该问题的答案会对您有所帮助:

      从 jQuery 版本 1.1.3 开始,event.which 规范了 event.keyCode 和 event.charCode,因此您不必担心浏览器兼容性问题。关于 event.which 的文档

      event.which 将分别为鼠标左键、中键和右键给出 1、2 或 3,因此:

      $('#element').mousedown(function(event) {
          switch (event.which) {
              case 1:
                  alert('Left Mouse button pressed.');
                  break;
              case 2:
                  alert('Middle Mouse button pressed.');
                  break;
              case 3:
                  alert('Right Mouse button pressed.');
                  break;
              default:
                  alert('You have a strange Mouse!');
          }
      });
      

      原帖自“tinybyte”

      【讨论】:

        【解决方案3】:

        您可以简单地使用mouse up 事件。 像这样的:

           <a href="http://www.google.com" onmouseup="alert('a')">link</a>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-11
          • 1970-01-01
          • 1970-01-01
          • 2020-01-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多