回答
你不應該換用label
元素input
元素,試試這個:
<label for="average-data" class="section-view-time-checkbox">
<span class="custom checkbox checked"></span> Average
</label>
<input type="checkbox" id="average-data" style="display: none;">
你需要你的點擊處理程序中調用event.preventDefault()
。這可以防止在您的自定義函數運行後執行默認的點擊操作。第二次警報發生是因爲表單正在提交。
爲什麼要提交表單?這只是一個'標籤'?另外,我不想做'event.preventDefault()'的原因是因爲我偶爾也會將鏈接嵌入到轉到另一個頁面的標籤中。 – Pwnna
我真的不知道。輸入元素的默認點擊行爲顯然會改變元素的狀態,導致它以某種方式刷新。因爲你知道你想要做什麼並不重要,你可以避免其他行爲;我很好奇自己,但我會在這裏發帖,如果我遇到一個很好的解釋 – nbrooks
你可以綁定一個不同的點擊監聽器到錨鏈接並調用該監聽器中的'event.stopPropagation()',以防止觸發點擊它的父元素。然後,它會執行其默認重定向/ changehash行動,沒有別的 – nbrooks
這是在Javascript中常見的錯誤。你可以在互聯網上找到很多專門針對SO的文章,因爲事件被激發了兩次。你可以嘗試這樣的事情
$(document).on('click', '#task-list li', function(e)
{
alert('Hellow world');
e.stopPropagation();
return false;
});
而且它絕對的Javascript問題,因爲如果你打穀歌和搜索事件火災兩次你會看到,折角,jQuery和骨幹網等所有的地方開火事件兩次甚至三次。所以,它似乎是在這背後的JavaScript。當然,如果你使用Mozilla開發者網絡進行搜索,那麼你可以看到專家也這麼說。
- 1. jQuery單擊事件觸發兩次
- 2. jquery點擊事件兩次觸發
- 3. jQuery - 單擊事件多次觸發
- 4. jQuery的單擊事件觸發多次:(
- 5. AJAX jQuery單擊功能事件被觸發兩次的結果
- 6. 由於關閉頁面單擊,jquery事件觸發了兩次?
- 7. 點擊事件觸發兩次
- 8. JavaScript事件點擊觸發兩次
- 9. 雙擊兩次觸發事件
- 10. jquery點擊事件 - 需要點擊兩次才能觸發
- 11. JQuery點擊事件觸發多次
- 12. jquery事件無端觸發兩次
- 13. jQuery Mobile「mobileinit」事件觸發兩次?
- 14. 單擊多次觸發事件
- 15. JQuery單擊類事件觸發多次點擊
- 16. jquery點擊觸發兩個「事件」
- 17. JSlider事件觸發兩次
- 18. jQTouch事件兩次觸發
- 19. jQuery的HTML點擊事件觸發兩次
- 20. 點擊事件觸發兩次(不是由jQuery)
- 21. JQuery的點擊()事件觸發兩次時稱爲活()
- 22. 單擊事件兩次觸發按鈕鏈接
- 23. jQuery + ASP.NET:jQuery單擊事件不會觸發
- 24. jQuery的單擊事件從未觸發
- 25. jQuery觸發器事件觸發多次
- 26. JQuery:觸發點擊事件
- 27. jQuery觸發點擊事件
- 28. jQuery手機觸發事件觸發兩次
- 29. jQuery Mobile的V單擊事件僅觸發一次
- 30. 圖像上的jQuery單擊事件只會觸發一次
剛擺脫它在一起。因爲我沒有提交表格,所以不需要它。只利用一些CSS樣式。 – Pwnna
@ultimatebuster祝你好運:) – undefined