0

我在图像上有一个锚标记,可以使用 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 很陌生,我只是想弄清楚如何将它们集成在一起。谢谢你的帮助!

4

1 回答 1

2

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

$('.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
        }
    });
});
于 2013-07-01T07:51:54.030 回答