我有一个标准链接设置,单击时通过 jquery 触发事件
<a href="#" class="dosomething">Click Me</a>
一切都很好,除了单击伪 URL 时,它会在 URL 上附加一个井号标签 (#)。如果用户决定稍后刷新页面,此主题标签会影响我的页面如何重新加载,因此我不希望将主题标签附加到 url。
这是否可能同时仍然允许我的正常 jquery 触发?
谢谢!
我有一个标准链接设置,单击时通过 jquery 触发事件
<a href="#" class="dosomething">Click Me</a>
一切都很好,除了单击伪 URL 时,它会在 URL 上附加一个井号标签 (#)。如果用户决定稍后刷新页面,此主题标签会影响我的页面如何重新加载,因此我不希望将主题标签附加到 url。
这是否可能同时仍然允许我的正常 jquery 触发?
谢谢!
您应该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();"
它是行不通的
Another thing why I used javascript: void(0);
is, if the function encounters/throws an error, it wont return false
So if you're a lone developer then you can clearly make your own choice, but if you work as a team you have to either state:
Use href="#", make sure onclick always contains return false; at the end, that any called function does not throw an error and if you attach a function dynamically to the onclick property make sure that as well as not throwing an error it returns false.
OR
Use href="javascript:void(0)"
Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?
在您单击功能的末尾,使用:
return false;
smartass anwser: use a button.
alternative: you must make sure to trigger the preventDefault in youre jQuery event handler
$("dosomthing").click(function(e){
//make magic happen
e.preventDefault()
})
this works on html forms thats submitting and such.
note on the button thing
最好的做法是只使用链接标签(更改 url 的东西)和其他类型的交互按钮。
搜索机器人和其他网络爬虫期望标签链接到其他 html 文档(超链接),并且包括 html 4. 或当前文档中的其他点。
它是否需要是一个href?你可以这样做:
<span class="dosomething">Click me</span>
.
.dosomething{cursor:pointer}