【问题标题】:Safari does not fire onmousedown fastSafari 不会快速触发 onmousedown
【发布时间】:2016-01-26 15:25:09
【问题描述】:

我只是觉得这个问题很奇怪。我有这个 jquery 方法:

$(".UserLink").mousedown(function(event){
  if(event.which == 3)  {
    $(".UserLink").attr("href", "www.google.com");
  }
});

我也有这个html代码:

<a class="UserLink" href="#">
  <div>My Links</div>
</a>

发生的情况是mousedown 事件在 Safari 中的触发速度不如 Firefox、Chrome 和 IE 快。因此,与 IE、Firefox 和 Chrome 相比,Safari 中的UserLink href 没有变化。

有什么解释为什么会这样吗?

【问题讨论】:

  • 哎呀!!!让我改变它。嘿嘿嘿……
  • 事件不会触发,因为 event.which == 3 永远不会为真。在 Safari 和 Chrome 事件中。这是 1. Chrome 控制台:哪个:1 Safari 控制台:哪个:1
  • 这段代码是为了捕捉右键事件。这意味着如果用户右键单击,它将更改href 值。然后当用户点击“在新标签中打开”时,它会将其重定向到href中的值。

标签: jquery html safari


【解决方案1】:

试试这个

$(document).ready(function () {    
    $(".UserLink").mousedown(function(event){
          if(event.which == 3)  {
            $(".UserLink").attr("href", "www.google.com");
          }
        });
    });

onmousedown 改为 mousedown 事件。
这里event.which读取的值是1,所以会跳出if条件。

【讨论】:

  • 它已经在document.ready() 中。但它仍然没有触发。
  • 是的。即使是这样。当用户在 safari 中右键单击此链接时,它不会触发链接的 href 设置。这个适用于 Chrome、Firefox 和 IE。
  • 代替$(".UserLink").attr("href", "www.google.com"); 试试$(".UserLink").attr("href", "http://www.google.com");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多