替代<a href="#">何时锚标记只触发jQuery操作而不重定向用户?

xyl*_*tol 6 html javascript anchor jquery restful-url

我的页面上有很多锚标记只能在同一页面上触发jQuery操作.

不要将用户重定向到另一个位置,这是锚标记的正常预期行为.

我不想在我的应用程序中为每个操作都提供restful url.但是,我也不喜欢每次点击其中一个<a href="#">标签时将用户发送到页面顶部.

href除了锚标记的价值之外,还有#什么更好的价值呢?

Asb*_*erg 9

你能在页面上引用一个片段,它可以作为未执行的JavaScript动作的逻辑后备吗?如果是这样,那么引用<a href="#account">id="account"在页面上有一个可以作为后备的工作是很有意义的.

另一种选择是直接引用动态加载的内容; 这样你可以非常方便地使用hrefAjax调用,而不是以某种方式硬编码JavaScript中的请求; <a href="/path/to/dynamic/content">.

最后,你根本不能<a href="#">静态地使用HTML,而是使用jQuery动态创建它,因为它只是由jQuery使用.如果占位符仅用于JavaScript并且仍然用于JavaScript,则无需使用JavaScript的占位符污染标记.

关于"将用户发送到页面顶部"; 你应该return false从你作为click()处理程序连接的函数中获取;

$('a').click(function() {
    // Do your stuff.
    // The below line prevents the 'href' on the anchor to be followed.
    return false;
});
Run Code Online (Sandbox Code Playgroud)


Rob*_*ton 5

你应该真正使用一个<button>元素只用于JS操作.它们具有默认操作(如果在表单内)但在表单之外,它们纯粹是用于将JS事件处理程序绑定到的用户触发操作.

  • 我真的很惊讶地看到,如果button没有默认的type属性,它会具有默认的表单行为,但是,这似乎是当前规范草案所说的内容:http://www.w3 .org / TR / html5 / the-button-element.html#the-button-element我一直认为button元素上的type的默认缺失值是button而不是submit。谢谢。 (2认同)

小智 5

我使用下面的代码,效果很好。

<div class="panel-heading">Definition
          <div class="pull-right">
              <i class="fa fa-wrench"></i> 
                 <a id="step3Ad" href="javascript:void(0);">Advanced</a>
          </div>
    </div
Run Code Online (Sandbox Code Playgroud)


ben*_*e89 0

return false;
Run Code Online (Sandbox Code Playgroud)

用它来阻止浏览器将它们发送到页面顶部?