我有几个按钮,当你点击(onclick)时,会出现一个有4个选项的菜单(就像右键单击任何软件一样):
<evento idevento="1000003" class="fc-day-grid-event fc-h-event fc-event
fc-start fc-draggable" draggable="true" ondragstart="drag(event)"
data-start="08-23-2017T11:00" data-room="3" data-guestname="guest name 3"
data-end="08-24-2017T12:00" onclick="mouseDown(event,1000003);">
<span class="fc-event eventoCalendario reserved">guest name 3</span></evento>以及名为onclick的方法:
function mouseDown(e,id){
//e = e || window.event;
if(e.which === 1){
console.log(e);
$("#menu").css({'display':'block', 'left':e.pageX, 'top':e.pageY});
}
//controlamos los botones del menú
$("#menu").click(function(e){
// El switch utiliza los IDs de los <li> del menú
switch(e.target.id){
case "AddBooking":
$("#bookingModal").modal();
break;
case "CheckIn":
console.log('a');
//$("#bookingModalcheck").modal();
//checkinRoom(id);
break;
case "Move":
console.log('a');
$("#Move-dialog").modal();
$("#move-original-room").attr('value', id);
break;
case "Remove":
// Método cancelar
cancelRoom(id);
break;
}
});}问题是,如果我用同样的方法在其他按钮上单击了几次,然后访问菜单并按下其中一个选项,例如checkin,这将重复开关的大小写签入操作,次数与之前在其他按钮上的任何地方单击的次数一样多。这就好像点击会被存储起来一样。
我很好奇为什么会发生这种情况。
添加预览视频:https://youtu.be/zDrWSkFKW04
发布于 2017-08-23 17:17:22
您要多次注册click-listener,因此会多次调用它。尝试:
$("#menu").off('click').on('click', function(e){
// El switch utiliza los IDs de los <li> del menú
switch(e.target.id){
case "AddBooking":
$("#bookingModal").modal();
break;
case "CheckIn":
console.log('a');
//$("#bookingModalcheck").modal();
//checkinRoom(id);
break;
case "Move":
console.log('a');
$("#Move-dialog").modal();
$("#move-original-room").attr('value', id);
break;
case "Remove":
// Método cancelar
cancelRoom(id);
break;
}
});.off('click')注销所有当前的点击处理程序,然后分配需要的。祝好运
https://stackoverflow.com/questions/45835399
复制相似问题