Jquery 取消链接的默认行为
在写JS脚本,特别是AJAX脚本的过程中,经常要取消掉对象的默认行为。比如说点击某个链接,就在特定的块里面显示另一个页面的内容,通常是这样来写:
<div id="ajax">
</div>
<a href="ajax.html" class="load"></a>
Jquery Js
$('.load a').bind ('click', function() {
var link = $(this).attr("href");
$('#ajax').load(link);
});
这样的确可以把ajax.html的内容填入到#ajax中,但脚本执行完之后,页面还是会跳转到ajax.html这个页面,这可不是我所希望的结果。最后,查资料得到解决的方法,在脚本执行后返回flase取消默认的行为并阻止事件起泡(bubbling up),最后的脚本如下:
$('.load a').bind ('click', function() {
var link = $(this).attr("href");
$('#ajax').load(link);
return false;
});
另外,通过preventDefault() 方法只取消默认的行为,通过使用 stopPropagation() 方法只阻止一个事件起泡。