javascript - jQuery HTML anchor 标记渐进增强

标签 javascript jquery html ajax graceful-degradation

我编写了 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/

相关文章:

javascript/jquery : load pictures from remote server based on size

html - 子菜单边框没有与 parent 左对齐?

html - 子菜单不会溢出隐藏

javascript - 将 Node.js 与 Symfony2 或 PHP 集成

javascript - 如何在不删除选择框滚动条的情况下删除浏览器滚动条

javascript - Webkit 和 jQuery 可拖动跳跃

jquery - 从 summernote textarea 中提取编辑过的文本

javascript - HTML 视频调整大小以始终适合

javascript - 在 Javascript 中从数组中删除项目

php - 如何在 main_page.php 的 div 容器内调用 sub_page.php?