Как перехватить ссылку с помощью jQuery при использовании вызова ajax? - PullRequest
11 голосов
/ 25 апреля 2009

Я мог бы делать что-то глупое. Но если у меня есть нормальная ссылка, как:

<div id="changeMe"></div>
<a href="/Not/Intercepted" id="interceptMe">A link</a>

и я прикрепляю событие jQuery click к ссылке следующим образом:

$('#interceptMe').click(function() {
  $('#changeMe').text('Changed');
  return false;
});

Все работает персиково. Страница не перенаправляется на / Not / Intercepted, что, я думаю, будет правильным.

Сейчас ...

Я ввел ajax-вызов, такой как $ .get, в мое событие click, и теперь моя страница будет неправильно перенаправлена ​​на страницу, что по существу перезаписывает ajax-вызов.

$('#interceptMe').click(function() {
  $.get('/Ajax/Call', goesIn, function(comesOut) {
  $('#changeMe').html(comesOut);
    }, "html");
  return false;
});

Есть ли способ заставить jQuery или javascript по-прежнему перехватывать ссылку, чтобы она не переходила на страницу href? Я хочу сохранить ссылку для тех пользователей, которые не поддерживают JavaScript. ТИА!

1 Ответ

23 голосов
/ 25 апреля 2009

вместо return false используйте ....

$("#interceptMe").click(function(event){

    event.preventDefault();

    // Ajax here

    return false; //for good measure
});

http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

У меня было много проблем с IE, особенно не слушал, чтобы вернуть false. Видимо, так же, как другие http://coffeeandpaste.blogspot.com/2009/02/javascript-onclick-return-false-does.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...