js 中 给方法绑定事件 叠加执行

前言

       项目中用的是bootstrap 模板,在一个功能页面中复用了同一个 模态框(modal),但是模态框中的修改按钮应该是不同的事件,所以考虑的就是给该按钮绑定不同的事件。

第一次

// 要绑定的方法
function editPermission(){
    alert(1);
}

// 绑定
$("#menuChangeBtn").click(editPermission());

这样在执行到绑定的代码时就会弹出 1 

第二次

// 要绑定的方法
function editPermission(){
    alert(1);
}

// 绑定
$("#menuChangeBtn").one("click", editPermission);

去掉括弧后就相当于引用了,可以正常绑定,但是如果多次执行了这个 绑定语句,就会给按按钮绑定多次事件,结果就是 多次弹出 1

第三次

// 要绑定的方法
function editPermission(){
    alert(1);
}

// 绑定
$("#menuChangeBtn").one("click", editPermission);

照着网上搜索的结果,用了个one 方法来绑定,当时不知道怎么就觉得成功,第二天发现还是重复执行了

第四次

// 要绑定的方法
function editPermission(){
    alert(1);
}

// 绑定
$("#menuChangeBtn").off("click").one("click", editPermission);

先用 off 方法清空该 元素的点击事件,再经行绑定,亲测可用!不会再出现事件叠加的情况

绑定外部方法传参

$("#menuChangeBtn").off('click').one("click", {"roleId": roleId, "gameId": gameId}, setGameMenu);

 function setGameMenu(event) {
    alert(event.data.roleId);
    alert(event.data.gameId);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值