关于js重复绑定

在一次写js函数的时候,通过点击按钮,触发一个showPictrue时间

$("#gdtpwjbd").on("click", function() {
                    showPicture($("#gdtpwj_hidden").val());
})
function showPicture(url) {
        if(url == "") {
            alert('未上传!');
            return;
        }
        console.info('查看图片路径: ' + url);
        var image = new Image();
        image.src = url;
        var iWidth = image.width; //弹出窗口的宽度;
        var iHeight = image.height; //弹出窗口的高度;
        var iTop = (window.screen.availHeight - 30 - iHeight) / 2; //获得窗口的垂直位置;
        var iLeft = (window.screen.availWidth - 10 - iWidth) / 2; //获得窗口的水平位置;
        window.open(url, "", "height=" + iHeight + ", width=" + iWidth + ", top=" + iTop + ",  left=" + iLeft);

这个函数主要是对图片进行显示,但是在实际执行的时候,会出现这种情况,点击一次按钮,会出现两个弹出窗口,也就是函数被执行了两次。
造成这个现象的主要原因是累加绑定,因为我的绑定函数是放在页面的onload函数里面,所以没有加载页面的时候都会进行重复累加,当绑定多个click的时候,也就出现点击一次,执行多次。
解决办法,在每次绑定前,把上次的绑定接触:

$("#gdtpwjbd").off().on("click", function() {
                    showPicture($("#gdtpwj_hidden").val());
})

添加一个off,问题就会解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值