我希望执行以下操作: 创建一个列表(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