[英]how to make a redirect link if the href attribute is not what you want
[英]What to use as “href” attribute when i want a link to link nowhere and use it for running a script?
我曾經做過href="#"
但是還有其他方法嗎?
因為單擊此類鏈接有時可能會使用戶轉到查看的頁面的前面,所以我想通過單擊鏈接來加載一些腳本。
繼續使用<a href="#">Click</a>
,但是使用一些Javascript / jQuery來防止頁面跳轉:
$('a').click(function() {
// do whatever
return false;
}
錯誤的返回行將阻止瀏覽器跟蹤鏈接,在這種情況下,這將阻止瀏覽器跳轉到頁面頂部。
您應該將鏈接保留為<a>
標記,而不要使用span
或div
,因為這要更加語義化(即,用戶/爬網者會知道它應該做某事,因為它是鏈接)。
您還應該避免使用內聯Javascript(即onclick="doSomething()"
),因為如果您想更改行為,這會非常麻煩,並且還希望使Javascript盡可能不引人注目 。
是的,href =“#”使ou滾動...
你可以試試:
<a href="javascript:void(0);" onclick="doIt(); return false;">Woho</a>
為什么不使用onclick
<a href="#" onclick="doMyThing() return false;" />
如果想要在同一頁面上進行事件,則為獲得good markup
。 因此,最好使用div or span
並在其上定義click event
。
div{
color:red;
}
JS
$('div').click{function(
)};
href="javascript:void(0)"
謝謝Yaniro
正如@Yaniro所評論的,您可以使用href =“ javascript:void(0)”,其原因是:
JavaScript Void 0說明
Web瀏覽器將嘗試使用任何用作URL的內容並進行加載。 我們可以在不加載新頁面的情況下使用JavaScript Alert語句的唯一原因是alert是一個返回空值的函數。 這意味着,當瀏覽器嘗試加載新頁面時,它會顯示為null並且沒有任何內容可加載。
這里要注意的重要一點是,如果您確實使用JavaScript語句作為返回值的URL,則瀏覽器將嘗試加載頁面。 為了防止這種不必要的操作,您需要在此類語句上使用void函數,該函數將始終返回null且永遠不會加載新頁面。
您可以簡單地在任何元素中使用onclick
屬性,例如
<span onclick="foo()">Do something</span>
使用href="#"
的習慣是從早期瀏覽器就一直保留下來的,這種瀏覽器通常不支持onclick
,僅用於鏈接(從技術意義上講:具有href
屬性a
元素)。 那是橋下的水,但是舊習慣常常不會消失,尤其是如果人們只是在不知道原因的情況下采用它們的時候。
取而代之的span
,你可以使用a
了。 沒有任何href
屬性, a
元素沒有特殊的含義。
根據非破壞性原則,應該使用JavaScript動態生成該元素,而不是將其作為頁面的靜態部分(因為禁用JavaScript后,它只會放在那兒,給人以相關的印象,但無需執行任何操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.