Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
jQuery:附加上一个事件处理程序,已在关闭时删除_Jquery_Ajax_Events_Event Handling - Fatal编程技术网

jQuery:附加上一个事件处理程序,已在关闭时删除

jQuery:附加上一个事件处理程序,已在关闭时删除,jquery,ajax,events,event-handling,Jquery,Ajax,Events,Event Handling,我有一个AJAX电话。在此通话过程中,必须禁用该按钮。 然后,在呼叫结束时,必须重新激活按钮的单击事件 我用这个代码来做。不幸的是,click事件只在第一次起作用 $('#reload_btn').on('click', function(){ $(this).off('click'); $.ajax({ type: 'GET', url: 'ajax/stat.php', data: {use: 'get'},

我有一个AJAX电话。在此通话过程中,必须禁用该按钮。 然后,在呼叫结束时,必须重新激活按钮的
单击事件

我用这个代码来做。不幸的是,click事件只在第一次起作用

$('#reload_btn').on('click', function(){
    $(this).off('click');

    $.ajax({
        type: 'GET',
        url: 'ajax/stat.php',
        data: {use: 'get'},
        beforeSend: function(){
            $('#reload_btn').attr('src', 'files/reload_btn.gif');
        },
        success: function(result){
            $('#ajax').html(result);
        },
        error: function(data){
            $('#ajax').html('Error!');
        },
        complete: function(){
            $('#reload_btn').on('click');
            $('#reload_btn').attr('src', 'files/reload_btn.png');
        }
    });
});

是否有任何方法可以在不调用外部函数的情况下重新附加
click
事件?

如果更改了两行,则可以重新附加处理程序:存储对函数的引用:

$('#reload_btn').on('click', f = function(){
并将其传递给
。单击

    complete: function(){
        $('#reload_btn').on('click', f);