Jquery点击事件分配在Firefox中不起作用

时间:2010-04-29 11:52:07

标签: jquery firefox

我是按类名为一堆锚点分配一个点击事件,它适用于除Firefox以外的所有浏览器,这里是JS:

var click_addthis = function(e, href) {
   if (!e) {
      var e = window.event;
   }
   e.cancelBubble = true;
   if (e.stopPropagation) e.stopPropagation();

   window.open(href, "Share It", null);

   return false;
}

$(document).ready(function() {
   $(".addthis_button_facebook").click(function() { click_addthis(event, this.href) });
   $(".addthis_button_twitter").click(function() { click_addthis(event, this.href) });
});

我错过了什么吗? 感谢

1 个答案:

答案 0 :(得分:6)

Firefox的问题在于此部分:

$(document).ready(function() {
   $(".addthis_button_facebook").click(function() { click_addthis(event, this.href) });
   $(".addthis_button_twitter").click(function() { click_addthis(event, this.href) });
});

您需要从处理程序传递事件,以使其一致,如下所示:

$(document).ready(function() {
  $(".addthis_button_facebook").click(function(e) { click_addthis(e, this.href) });
  $(".addthis_button_twitter").click(function(e) { click_addthis(e, this.href) });
});

您也可以将其缩短至此,因为您使用相同的功能(return false也会停止传播):

$(document).ready(function() {
  $(".addthis_button_facebook, .addthis_button_twitter").click(function() { 
    window.open(this.href, "Share It", null);
    return false;
  });
});