2019獨角獸企業重金招聘Python工程師標準>>>
遇到一個問題,當input type="checkbox"點擊時,沒有立即執行勾選或去勾,而是先執行函數,如下代碼
$(".sidebar_cart .cart_list ul").on("click","dl dd .check_box label",function (e) {console.log($(this).prev()[0].checked);price_link();
});
解決辦法是:先阻止默認事件(e.preventDefault),再手動勾選或去勾,用if判斷來完成操作
$(".sidebar_cart .cart_list ul").on("click","dl dd .check_box label",function (e) {e.preventDefault();if ($(this).prev()[0].checked){$(this).prev().prop("checked",false);} else {$(this).prev().prop("checked",true);}console.log($(this).prev()[0].checked);price_link(); });
哈,今天發現了另一種解決辦法,就是將事件綁定再input上,而不是label上
$(".sidebar_cart .cart_list ul").on("click","input[type=checkbox]",function () {price_link();
});
將事件綁定在input上后會立馬執行勾選或去勾!!!
綁定再label上后,當點擊時會執行這個label綁定的函數,再執行label和input的聯動!!!