我编写了 jQuery,它应该找到特定的 <a>
标记并更改其行为。在 jQuery 加载之前,<a>
标签有一个 href 属性,指向另一个页面。我正在使用 jQuery 来更改 <a>
的行为标签,这样它不会指示浏览器加载其他页面,而是在单击时运行 javascript,动态加载 <div>
中的内容。位于鼠标指针的位置。
例如,我有以下内容:
<a class="funk" href="http://example.com/page2.html">Link</a>
<div class="hidden bubble">Load this instead.</div>
我运行的 jQuery 执行以下操作:
<pre>$(document).ready(function(){
$('.bubble').hide()
$('.bubble').removeClass('hidden');
$('.funk').attr('href', '#');<p></p>
<pre><code> $('.funk').click(function(e){
$('.bubble').show();
})
</code></pre>
<p>})
</p></pre>
我遇到的问题是:每当用户单击链接时,浏览器都会对 href="#"
进行操作。属性并将浏览器滚动到页面顶部。使我的网站最“正确”的方法是什么,以便浏览器根本不滚动,而只是执行我为单击事件编写的 jQuery 代码?
最佳答案
让“click”函数返回false
。这会取消该事件,并且浏览器不会点击该链接。在这种情况下,您甚至可以让 href
属性保持其原始值。
$('.funk').click(function(e){
$('.bubble').show();
return false;
//--^
})
要保存,您可以显式取消事件:
e.preventDefault(); // no default action
e.stopPropagation(); // event doesn't bubble up or down in the DOM
关于javascript - jQuery HTML anchor 标记渐进增强,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770041/