Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何清除jQuery中最后一个bind()-ed事件回调?_Javascript_Jquery_Event Handling_Closures_Jquery Events - Fatal编程技术网

Javascript 如何清除jQuery中最后一个bind()-ed事件回调?

Javascript 如何清除jQuery中最后一个bind()-ed事件回调?,javascript,jquery,event-handling,closures,jquery-events,Javascript,Jquery,Event Handling,Closures,Jquery Events,我需要动态绑定()单击事件,但问题是当我第二次或第三次绑定时,最后一次绑定()的回调也会触发。如何清除上次绑定()的事件回调?然后用这个新的回调函数覆盖单击事件 请注意,event是一个用户定义的对象,而不是Javascript事件对象 function showEditModal(event, callback) { $("#dialog-form").dialog('open'); $('#place').val(event.metadata.place

我需要动态绑定()单击
事件,但问题是当我第二次或第三次绑定时,最后一次绑定()的回调也会触发。如何清除上次绑定()的事件回调?然后用这个新的回调函数覆盖
单击
事件

请注意,
event
是一个用户定义的对象,而不是Javascript事件对象

function showEditModal(event, callback)
{
    $("#dialog-form").dialog('open');

    $('#place').val(event.metadata.place);
    $('#type').val(event.metadata.type);
    $('#city').val(event.metadata.city);

    $('#dialog-form .button-save').show().click(function()
    {
        event.metadata.place = $('#place').val();
        event.metadata.type = $('#type').val();
        event.metadata.city = $('#city').val();

        $('#dialog-form').dialog('close');
        
        callback(event);
    });
}

使用如何?此方法与.bind()相同,只是处理程序在第一次调用后被解除绑定。(基于jQuery文档)

是的,它很有效,可惜我昨天看到它时没有注意到一个()。非常感谢。