所以我有這個JS,當我運行代碼時我得到了「e is not defined」 - 我錯過了什麼?e.preventDefault - e沒有定義
$('ul.result-filters > li a').click(toggleFilters());
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
所以我有這個JS,當我運行代碼時我得到了「e is not defined」 - 我錯過了什麼?e.preventDefault - e沒有定義
$('ul.result-filters > li a').click(toggleFilters());
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
使用此:
$('ul.result-filters > li a').click(toggleFilters);
你被路過的toggleFilters()
的結果,而不是傳遞函數本身。
您正在調用函數而不是傳遞處理程序名稱來單擊。卸下toggleFilters括號()
變化
$('ul.result-filters > li a').click(toggleFilters());
要
$('ul.result-filters > li a').click(toggleFilters);
$('ul.result-filters > li a').on('click', toggleFilters);
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
當它立即執行,並將結果傳回該功能後加入括號。要僅引用該函數並在點擊時調用它,請刪除括號。
這也會使事件可用於toggleFilters
功能!
總是可以做e = e || window.event
以確保您有活動。
您需要使用函數名稱而不是函數調用toggleFilters()。
$('ul.result-filters > li a').on('click', toggleFilters);
function toggleFilters(e) {
e.preventDefault();
//do more stuff
}
由於
失去'()''後toggleFilters'。 –
oops沒有被接受。 – Jai