2

我有一个标准链接设置,单击时通过 jquery 触发事件

<a href="#" class="dosomething">Click Me</a> 

一切都很好,除了单击伪 URL 时,它会在 URL 上附加一个井号标签 (#)。如果用户决定稍后刷新页面,此主题标签会影响我的页面如何重新加载,因此我不希望将主题标签附加到 url。

这是否可能同时仍然允许我的正常 jquery 触发?

谢谢!

4

4 回答 4

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();"它是行不通的

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)"?

于 2013-02-20T17:36:13.457 回答
0

在您单击功能的末尾,使用:

return false;
于 2013-02-20T17:35:14.123 回答
0

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. 或当前文档中的其他点。

于 2013-02-20T17:36:37.533 回答
-4

它是否需要是一个href?你可以这样做:

<span class="dosomething">Click me</span>

.

.dosomething{cursor:pointer}
于 2013-02-20T17:35:26.887 回答