Подавить тег привязки <a>href при использовании jquery - PullRequest
3 голосов
/ 02 октября 2009

У меня есть следующий код:

  <script type="text/javascript">

  $(document).ready(function() 
  {
    $("#thang").load("http://www.yahoo.com");

    $(".SmoothLink").click( function()
    {
      $("#thang").fadeOut();

      $("#thang").load($(this).attr("href"));           

      $("#thang").fadeIn();

    });
  });

  </script>

  <a href="http://www.google.com" id="thelink" class="SmoothLink">click here</a><br /><br />
  <div style="border: 1px solid blue;" id="thang">
  </div>

То, чего я пытаюсь добиться, - это быстрый и простой способ ajax-ify веб-сайта, просто поместив класс по определенным ссылкам, которые я хочу загрузить в div. У меня проблема в том, что нормальное действие привязки запускается и просто перенаправляется на ссылку нормально. Как подавить нормальное действие привязки?

Ответы [ 2 ]

8 голосов
/ 02 октября 2009

В целом:

$('a').click(function(e) {
    //prevent the 'following' behaviour of hyperlinks by preventing the default action
    e.preventDefault();

    //do stuff

});

или

$('a').click(function(e) {
    //do stuff

    //equivalent to e.preventDefault AND e.stopPropagation()
    return false;
});

Дополнительная информация:

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

Предыдущий вопрос о разнице между return false и e.preventDefault():

event.preventDefault () против возврата false

1 голос
/ 02 октября 2009

Не совсем связано с вашей проблемой, но вместо этого ...

$("#thang").fadeOut();
$("#thang").load($(this).attr("href"));
$("#thang").fadeIn();

... jQuery предназначен для цепочки методов, как таковых:

$("#thang").fadeOut().load($(this).attr("href")).fadeIn();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...