Как настроить таргетинг на ссылку с помощью event.preventDefault? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть ссылка с обработчиком кликов здесь.href заполнен информацией, которая мне нужна.но я не хочу щелкать, чтобы открыть эту ссылкутак что я сделал event.preventDefault и он работает нормально.Но мне нужно target = "_ top", когда кто-то нажимает на ссылку.это вообще возможно?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

изменил функцию event.preventDefault(); на return false; и сделал html-анимацию с scrollTop: $('html, body').animate({scrollTop:0});

теперь ссылка не следует за href, но она прокручивается к началу

0 голосов
/ 06 декабря 2011

Если вы запрещаете действие ссылки по умолчанию, я полагаю, вы делаете что-то еще.Если это что-то еще требует изменения местоположения окна, и вы хотите изменить местоположение верхнего окна, вы можете использовать window.top для обращения к нему, а затем установить его местоположение с помощью свойства location, например:

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

Например ( живой пример ):

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");
});

Обратите внимание, что я 'm не , препятствующее действиям по умолчанию там.

Я не хотел бы гарантировать, что это обязательно сработает, хотя лучше установить атрибут, прежде чем они нажмут на ссылку.

...