簡體   English   中英

當我希望鏈接無處鏈接並使用它來運行腳本時,可以用作“ href”屬性嗎?

[英]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>標記,而不要使用spandiv ,因為這要更加語義化(即,用戶/爬網者會知道它應該做某事,因為它是鏈接)。

您還應該避免使用內聯Javascript(即onclick="doSomething()" ),因為如果您想更改行為,這會非常麻煩,並且還希望使Javascript盡可能不引人注目

是的,href =“#”使ou滾動...

你可以試試:

<a href="javascript:void(0);" onclick="doIt(); return false;">Woho</a>

為什么不使用onclick

<a href="#" onclick="doMyThing() return false;" />

關於SO的類似討論, href-tag-for-javascript-links-or-javascriptvoid0

如果想要在同一頁面上進行事件,則為獲得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且永遠不會加載新頁面。

摘自: JavaScript Void 0說明

您可以簡單地在任何元素中使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM