我有一个标准的链接设置,点击时通过jquery触发事件
<a href="#" class="dosomething">Click Me</a>
所有这一切都很有效,除了单击伪URL时,它会在URL上附加一个#标签。如果用户决定稍后刷新页面,此主题标签会影响我的页面重新加载的方式,因此我不希望在网址上附加主题标签。
这是可能的,同时仍允许我的普通jquery开火吗?
谢谢!
答案 0 :(得分:4)
您应该return false;
代码
A
或者,使用
<a href="javascript: void(0);" class="dosomething">Click Me</a>
对于那些认为javascript: void(0)
是不良做法的人
如果您使用href='#'
,则必须处理两件事
// one
function fn() {
// code
return false;
}
// two
<a href="#" onclick="return fn();">click</a>
如果你忘了并且只是写onclick="fn();"
它就行不通了
我使用javascript: void(0);
的另一个原因是,如果函数遇到/抛出错误,不会返回false
所以,如果你是一个单独的开发人员,那么你可以明确地做出自己的选择,但如果你作为一个团队工作,你必须要说明:
使用href =“#”,确保onclick总是包含return false;最后,任何被调用的函数都不会抛出错误,如果你动态地将一个函数附加到onclick属性,请确保它不会抛出错误而返回false。
OR
使用href="javascript:void(0)"
Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?
答案 1 :(得分:1)
在点击功能结束时,使用:
return false;
答案 2 :(得分:0)
smartass anwser:使用按钮。
替代方案:您必须确保在jQuery事件处理程序
中触发preventDefault$("dosomthing").click(function(e){
//make magic happen
e.preventDefault()
})
这适用于提交等等的html表单。
关于按钮事项的说明
最好只使用链接标记(更改网址的内容)和其他类型的交互按钮。
搜索机器人和其他网页抓取工具希望标签链接到其他html文档(超链接),最多包含html 4.或者链接到当前文档中的其他点。
答案 3 :(得分:-4)
它是否需要成为一个href?你可以这样做:
<span class="dosomething">Click me</span>
.dosomething{cursor:pointer}