Jquery 取消链接的默认行为

hosanna posted @ 2010年8月03日 17:27 in Web , 16727 阅读

在写JS脚本,特别是AJAX脚本的过程中,经常要取消掉对象的默认行为。比如说点击某个链接,就在特定的块里面显示另一个页面的内容,通常是这样来写:

HTML

  1. </p>
  2. <div id="ajax">
  3. </div>
  4. <a href="ajax.html" class="load"></a>

Jquery Js

  1. $('.load a').bind ('click', function() {
  2. var link = $(this).attr("href");
  3. $('#ajax').load(link);
  4. });

这样的确可以把ajax.html的内容填入到#ajax中,但脚本执行完之后,页面还是会跳转到ajax.html这个页面,这可不是我所希望的结果。最后,查资料得到解决的方法,在脚本执行后返回flase取消默认的行为并阻止事件起泡(bubbling up),最后的脚本如下:

  1. $('.load a').bind ('click', function() {
  2. var link = $(this).attr("href");
  3. $('#ajax').load(link);
  4. return false;
  5. });

另外,通过preventDefault() 方法只取消默认的行为,通过使用 stopPropagation() 方法只阻止一个事件起泡。

参考网址:http://api.jquery.com/bind/


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter