Jquery在FIrefox中单击寄存器,而不是在IE中

时间:2010-02-01 19:26:50

标签: jquery cross-browser

简单点击在Firefox中注册而不是在IE中注册的原因可能是什么?

编辑:我应该得到积分,只是为了解决这个问题的问题。

2 个答案:

答案 0 :(得分:3)

请注意,“点击”事件不会在IE中冒泡。如果您执行类似于在锚标记内放置按钮的操作,则单击按钮不会传播到锚点。

我用这样的方法解决了这个问题:

$('a').find(':button').each(function() {
  var $button = $(this);
  $button.click(function(ev) {
    $button.closest('a').each(function() {
      this.click(); // not $(this)
    });
    return !!ev.stopPropagation() && false;
  });
});

答案 1 :(得分:3)

有多种方法可以点击,在Firefox和IE中工作。您可以使用点击方法:

$("a:first").click();

触发点击事件。或者您可以通过触发器方法对其进行修补:

$("a:first").trigger("click");

同样的事情也是如此。这两个示例包括调用单击,但不包括拦截。您的问题并不清楚您感兴趣的项目。拦截点击次数与第一种方法类似:

$("a:first").click(function(e){
  e.preventDefault();
  alert("You've clicked the first link.");
});

这仅适用于加载jQuery时页面上存在的链接。如果您将来加载动态链接,则必须使用实时方法:

$("a").live("click", function(e){
  e.preventDefault();
  alert("You've clicked a link");
});