成功调用Ajax后将函数重新绑定到锚定标记

Rebinding Function to Anchor Tag after Successful Ajax Call

本文关键字:绑定 Ajax 调用 函数 新绑定 成功      更新时间:2023-09-26

我在一个图像上有一个锚标记,它用jQuery调出一个菜单。一旦用户单击图像,向上拉菜单的功能就与图像解除了绑定(因此他们不能多次单击它并扰乱所有内容的配置)。我使用AJAX在页面上提交表单,我希望只有在成功调用AJAX之后,函数才能绑定回图像。

我也看到过其他类似的问题,但我并不清楚它与我所拥有的到底有什么关系。这是我的jQuery代码。我没有放所有的代码,但让我们假设AJAX调用是成功的(在代码的这一点上):

$('.modify_alert').click(function(){
    $('.modify_alert').unbind('click');
    $('.modify_alert').addClass('submit_upgrade');
        //A BUNCH OF CODE HERE

    //AJAX CALL FOR MODIFY ALERT
    $('.modify_check').click(function(e){
        e.preventDefault();
        //post variables
        //MORE CODE HERE
        $.ajax({
            type: 'POST', // HTTP method POST or GET
            url: 'ajax.php', //Where to make Ajax calls
            dataType:'text', // Data type, HTML, json etc.
            data:myData, //post variables
            success:function(response){
            //REFORMAT UPON SUCCESSFUL AJAX CALL (REMOVED CODE FOR SIMPLICITY)
            //TRYING TO REBIND THE FUNCTION HERE        
            $('.modify_alert').bind('click');
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert('didn''t work'); //throw any errors
        }
    });
});

我想我可以在解除绑定后将点击操作绑定回.modify_alert锚标记。我想我做不到吗?谢谢你的帮助。我对AJAX还很陌生,我只是想弄清楚如何将它们集成在一起。谢谢你的帮助!

绑定或取消绑定处理程序时,应指定处理程序:

$('.modify_alert').click(function mdfclick(){
    $('.modify_alert').unbind('click', mdfclick);
    $('.modify_alert').addClass('submit_upgrade');
    //A BUNCH OF CODE HERE

    //AJAX CALL FOR MODIFY ALERT
    $('.modify_check').click(function (e){
        e.preventDefault();
        //post variables
        //MORE CODE HERE
        $.ajax({
            type: 'POST', // HTTP method POST or GET
            url: 'ajax.php', //Where to make Ajax calls
            dataType:'text', // Data type, HTML, json etc.
            data:myData, //post variables
            success:function(response){
            //REFORMAT UPON SUCCESSFUL AJAX CALL (REMOVED CODE FOR SIMPLICITY)
            //TRYING TO REBIND THE FUNCTION HERE        
            $('.modify_alert').bind('click', mdfclick);
        },
        error:function (xhr, ajaxOptions, thrownError){
            alert('didn''t work'); //throw any errors
        }
    });
});