我在使用jquery和附加到锚元素的click事件时遇到问题。[1]:jQuery超链接- href值?“这个” SO问题似乎是重复的,并且可接受的答案似乎并不能解决问题。对不起,这是不好的礼节。
在我的.ready()函数中,我有:
jQuery("#id_of_anchor").click(function(event) { //start function when any update link is clicked Function_that_does_ajax(); });
我的锚点看起来像这样:
<a href="#" id="id_of_anchor"> link text </a>
但是当单击链接时,将按需执行ajax功能,但是浏览器滚动到页面顶部。不好。
我尝试添加:
event.preventDefault();
在调用执行ajax的函数之前,但这无济于事。我想念什么?
澄清度
我已经使用了
return false; event.preventDefault(); event.stopPropagation();
在调用js ajax函数之前和之后。它仍然滚动到顶部。
那应该起作用,您能否阐明“之前”的含义?你在做这个吗?
jQuery("#id_of_anchor").click(function(event) { event.preventDefault(); Function_that_does_ajax(); });
因为从某种意义上来说这 应该 起作用,如果它不起作用,则说明您做错了什么,我们需要查看更多代码。但是,为了完整起见,您还可以尝试以下操作:
jQuery("#id_of_anchor").click(function() { Function_that_does_ajax(); return false; });
编辑
这是此工作的示例。
这两个链接使用以下代码:
$('#test').click(function(event) { event.preventDefault(); $(this).html('and I didnt scroll to the top!'); }); $('#test2').click(function(event) { $(this).html('and I didnt scroll to the top!'); return false; });
如您所见,它们工作正常。