如何使用event.preventDefault定位链接?

时间:2011-12-06 11:06:03

标签: jquery hyperlink target preventdefault

我在这里有一个点击处理程序的链接。 href充满了我需要的信息。但我不希望点击打开此链接。所以我做了event.preventDefault,它工作正常。但我需要定位=“_ top”ich有人点击链接。这有可能吗?

2 个答案:

答案 0 :(得分:0)

如果您阻止链接的默认操作,我认为您正在做其他事情。如果其他内容涉及更改窗口位置,并且您想要更改顶部窗口的位置,则可以使用window.top引用它,然后通过location属性设置其位置,例如:

window.top.location = /* ... */;

例如(live example):

HTML:

<a id="theLink" href="http://jsbin.com">This link</a>
says jsbin.com and doesn't have <code>target="_top"</code>,
but will actually go to stackoverflow.com and do it
in the top window. (Seems a bit evil.)

JavaScript的:

jQuery(function($) {

  $("#theLink").click(function(event) {
      window.top.location = "http://stackoverflow.com";
      return false;
  });

});

...但是这提出了为什么不让链接完成其工作的问题。 : - )

或者,如果您尝试将target="_top"添加到单击时没有该链接的链接,您可以执行以下操作:

var link = /* ...get the link element, e.g., $("#theLink") or whatever */;
$("#theLink").click(function() {
    link.attr("target", "_top");
});

请注意,我阻止默认操作。

我不想保证这必然会有效 - 最好在点击链接之前设置属性。

答案 1 :(得分:0)

event.preventDefault();函数更改为return false;并使用scrollTop进行html动画:$('html, body').animate({scrollTop:0});

现在链接不跟随href,但它滚动到顶部