簡體   English   中英

如何禁用javascript和css的鏈接?

[英]How do I disable a link with javascript and css?

你知道怎么只為用戶禁用鏈接嗎? 我有

<div class="searchoffertext" onclick="searchoffertext_selected('Banana')"><a href="./search/Banana">Banana</a></div>

所以想法是鏈接/搜索/香蕉是一個有效的鏈接,我想保留它用於搜索索引引擎。 但是,我希望當用戶點擊鏈接時,調用了searchoffertext_selected函數並且沒有其他事情發生。

要阻止鏈接采取其默認操作,請添加return false; onclick事件:

<div class="searchoffertext" onclick="searchoffertext_selected('Banana'); return false;"><a href="./search/Banana">Banana</a></div>

onclick直接放在<a>上可能是個更好的主意

但更好的方法是使用不顯眼的JavaScript通過選擇器將事件附加到鏈接。

另請參閱: Stackoverflow:何時在HTML中使用onclick?

使用jQuery:

$('#selector').click(function(e){
  e.preventDefault();
});

VanilaJS:

<a onclick="return false;">

嘗試這個?

JS

document.querySelectorAll('.searchoffertext > a').onclick = function(e) {
  e.preventDefault();
  searchoffertext_selected(this.getAttribute("data-fruit"));
}

HTML

<div class="searchoffertext">
    <a href="./search/Banana" data-fruit="Banana">Banana</a>
</div>

HTML

<div class="searchoffertext" onclick="searchoffertext_selected('Banana')">
    <a href="./search/Banana">Banana</a>
</div>

CSS

使用pointer-events ,但在早於11的IE版本中不支持此功能。

.searchoffertext > a {
    pointer-events: none;
}

JavaScript的

單擊鏈接時阻止執行默認操作

var links = document.querySelectorAll('.searchoffertext > a'), i;
for(i = 0; i < links.length; i += 1) {
    links[i].addEventListener('click', function(e) {
        e.preventDefault();
    }, false);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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