2017-05-29 91 views
0

停止功能我有這個jQuery:的preventDefault從工作

jQuery('#overlayBtn').click(function(e){ 
    e.preventDefault(); 
    jQuery('#overlay').css('display','flex'); 
}); 

如果我刪除的preventDefault()它工作正常,但頁面跳轉到頂部,因爲我有一個#作爲HREF。我想停止默認點擊行爲,但是會顯示我的覆蓋圖。

我該怎麼做?

+2

你可以包含更多相關的代碼,或者甚至更好地使問題的工作片段 –

+0

任何腳本錯誤 –

回答

2

只需添加在功能return false;

jQuery('#overlayBtn').click(function(e) { 
    jQuery('#overlay').css('display','flex'); 
    return false; 
}); 
+0

謝謝,這個作品,我會盡快標記它的時間限制允許。請問爲什麼它有效? – Guerrilla

+1

事件處理程序的返回值確定是否也應該發生默認瀏覽器行爲。它幾乎與'e.preventDefault();'相同:':https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation – FieryCat

1

末以其他用戶之前所說的,return false;可能是這種情況下,soulution但考慮到這是不是一個好的做法。

請參考以下鏈接查看你爲什麼shold't使用該行代碼:https://web.archive.org/web/20160603125641/http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

另外,你可以使用屬性href="javascript:void(0)"來達到同樣的效果。

+0

但是可靠的跨瀏覽器解決方案(而IE中的'e.preventDefault'失敗)。 – FieryCat

相關問題