如果未重新加载页面,则执行两次函数

时间:2018-06-18 14:52:48

标签: javascript

$(document).on('click', '.imgdel', function() {
    if (!$('.imgstore').hasClass('imgact')) {return false;}
    mdialog('DELETE', 'IMAGE WILL BE DELETED', 'OK', delimg);
});

function mdialog(title, story, btn, fn) {
    $('#dgtitle').text(title);
    $('#dgstory').html(story);
    $('#dgok').text(btn).click(function(){fn()});
    $('#mdialog').show();
}

function delimg() {
    console.log('delimg');
};

首先点击dgok - 一切正常。

重新加载页面 - 重复所有 - 一切正常。

重复所有 - 不用重新加载页面 - 控制台写入delimg - 两次!

任何帮助?

1 个答案:

答案 0 :(得分:0)

使用jQuery .off()函数禁用以前的处理程序:

$('#dgok').text(btn).off('click').click(function(){fn()});