我希望執行以下操作: 創建一個列表(ul和li)。然後在ul點擊時,我想根據條件插入div
,即如果選擇checkbox
,則創建帶有4個複選框的div
。jquery:事件處理程序多次調用
如果從列表中選擇radio
,則使用4個無線電創建div
。
以下是我的jQuery代碼:
var addDiv=document.createElement("div");
$("#id-ul").click(function(){$('#sidr-bottom').hide();
var div_id=0;
addDiv=document.createElement("div");
$("#A_MULTI").on("click", { divId:addDiv }, myHandler);
$("#A_RADIO").on("click", { divId:addDiv }, myHandlerRadio);
addDiv.id = "div_multi"+div_id; ...
複選框處理器:
function myHandler(event) {
alert("check : "+ event.data.divId);}
無線電處理器:
function myHandlerRadio(event) {
alert("radio:"+ event.data.divId);}
現在的問題是,當我在checkbox
單擊列表for first time
,myhandler
未被調用。
當我再次單擊它時,處理程序會被調用一次。
當我再次單擊它時,處理程序會被調用兩次。
這種奇怪的行爲是什麼原因?
請讓我知道我該如何解決這個問題。
編輯:
我向外移動#id-ul
點擊下面的2行。
$("#A_MULTI").on("click", { divId:addDiv }, myHandler); $("#A_RADIO").on("click", { divId:addDiv }, myHandlerRadio);
我仍然面臨同樣的問題。
但如何將傳遞給處理程序的div? div是#id-ul點擊。請告訴我。 – z22
@ z22是否要爲每個事件處理程序傳遞不同的數據?因爲你正在創建div事件類型'click'事件被觸發 –
是的,其實我想每次都通過新的div – z22