使类在由 jquery 更新后与 jquery 一起使用

Make classes work with jquery after updated by jquery

本文关键字:jquery 一起 更新      更新时间:2023-09-26

我目前正在做一个项目,我想点击一个对象改变一个类,然后让下一次点击依赖于同一个jquery。

我只能在第一次让它工作 - 之后它不会工作。我的来源如下:

$(document).ready(function(){
    $("a.activate").click(function(){
        var elmid = $(this).attr('id');
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/advertisement/activate", // URL of the Perl script
            data: {adID: $(this).prev("input.ad_ID").val()},
            success: function(data){
                if (data.error) {
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("text-danger");
                    $("form#createForm input#createForm_submit").removeAttr('disabled');
                }
                else 
                {
                    var src = $("a#" + elmid + " img").attr("src").replace("activate-16x16.png", "deactivate-16x16.png");
                    $("a#" + elmid + " img").attr("src", src);
                    $("a#" + elmid).removeClass('activate').addClass('deactivate');
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("success");
                }
            }
        });
    });
    $("a.deactivate").click(function(){
        var elmid = $(this).attr('id');
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/advertisement/deactivate", // URL of the Perl script
            data: {adID: $(this).prev("input.ad_ID").val()},
            success: function(data){
                if (data.error) {
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("text-danger");
                    $("form#createForm input#createForm_submit").removeAttr('disabled');
                } 
                else 
                {
                    var src = $("a#" + elmid + " img").attr("src").replace("deactivate-16x16.png", "activate-16x16.png");
                    $("a#" + elmid + " img").attr("src", src);
                    $("a#" + elmid).removeClass('deactivate').addClass('activate');
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("success");
                }
            } 
        });
    });
});

我的新消息来源(截至芭芭拉的评论)是:

$(document).ready(function(){
    $("a.activate").on( 'click', function(){
        var elmid = $(this).attr('id');
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/advertisement/activate", // URL of the Perl script
            data: {adID: $(this).prev("input.ad_ID").val()},
            success: function(data){
                if (data.error) { // script returned error
                alert("fejl");
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("text-danger");
                    $("form#createForm input#createForm_submit").removeAttr('disabled');
                }
                else 
                {
                    var src = $("a#" + elmid + " img").attr("src").replace("activate-16x16.png", "deactivate-16x16.png");
                    $("a#" + elmid + " img").attr("src", src);
                    $("a#" + elmid).addClass('deactivate').removeClass('activate');
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("success");
                }
            }
        });
    });
    $("a.deactivate").on ( 'click', function(){
        var elmid = $(this).attr('id');
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/advertisement/deactivate", // URL of the Perl script
            data: {adID: $(this).prev("input.ad_ID").val()},
            success: function(data){
                if (data.error) {
                    alert("fejl");
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("text-danger");
                    $("form#createForm input#createForm_submit").removeAttr('disabled');
                }
                else 
                {
                    var src = $("a#" + elmid + " img").attr("src").replace("deactivate-16x16.png", "activate-16x16.png");
                    $("a#" + elmid + " img").attr("src", src);
                    $("a#" + elmid).addClass('activate').removeClass('deactivate');
                    $('div#create_createresult').text(data.msg);
                    $('div#create_createresult').addClass("success");
                }
            }
        });
    });
});

感谢杰森、芭芭拉和 j08691,我想出了这个解决方案,如果你遇到同样的麻烦,它应该适合。

请注意,$(document).ready() 部分已被删除!

我的问题的答案:

$(document).on( 'click', "a.activate", function(){
    var elmid = $(this).attr('id');
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "/advertisement/activate", // URL of the Perl script
        data: {adID: $(this).prev("input.ad_ID").val()},
        success: function(data){
            if (data.error) { // script returned error
            alert("fejl");
                $('div#create_createresult').text(data.msg);
                $('div#create_createresult').addClass("text-danger");
                $("form#createForm input#createForm_submit").removeAttr('disabled');
            }
            else 
            {
                var src = $("a#" + elmid + " img").attr("src").replace("activate-16x16.png", "deactivate-16x16.png");
                $("a#" + elmid + " img").attr("src", src);
                $("a#" + elmid).addClass('deactivate').removeClass('activate');
                $('div#create_createresult').text(data.msg);
                $('div#create_createresult').addClass("success");
            }
        }
    });
});
$(document).on ( 'click', "a.deactivate", function(){
    var elmid = $(this).attr('id');
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "/advertisement/deactivate", // URL of the Perl script
        data: {adID: $(this).prev("input.ad_ID").val()},
        success: function(data){
            if (data.error) {
                alert("fejl");
                $('div#create_createresult').text(data.msg);
                $('div#create_createresult').addClass("text-danger");
                $("form#createForm input#createForm_submit").removeAttr('disabled');
            }
            else 
            {
                var src = $("a#" + elmid + " img").attr("src").replace("deactivate-16x16.png", "activate-16x16.png");
                $("a#" + elmid + " img").attr("src", src);
                $("a#" + elmid).addClass('activate').removeClass('deactivate');
                $('div#create_createresult').text(data.msg);
                $('div#create_createresult').addClass("success");
            }
        }
    });
});