确认甜蜜警报后更改点击元素的颜色

时间:2017-11-05 18:45:18

标签: jquery

当我点击某个特定课程时,会弹出一个甜蜜警报。如果我确认,它应该更改我单击的元素的背景颜色并更改现有元素的背景颜色。如果我在点击后立即执行此操作,我可以使用"这个"像:

$(this).css("background-color", "red");

但是因为我想在甜蜜的警报之后这样做,所以我不能使用它并且不知道如何获得点击的课程。

$( ".thumbs" ).on("click", ".thumb-wrapper", function() {
        var prodId = $( ".featured-wrapper" ).data("prodid");
        var prodName = $(this).data("name");


        swal({
                title: 'Set Featured image',
                text: "Are you sure you want to change it?",
                type: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Yes, change it!'
            }).then(function () {
                swal(
                    'Changed!',
                    'Featured image changed.',
                    'success'
                )


                    $.ajax({
                        url: 'functions/changed-featured-img.php',
                        type: 'POST',
                        data: {
                            prodId: prodId,
                            prodName: prodName
                        },
                    })
                    .done(function (data) {
                        $( ".featured-wrapper" ).css("background-color", "white");
                   // need to change the clicked class background to red. 

                    })
                    .fail(function (jqXHR, textStatus, errorThrown) {
                        console.log(textStatus + ': ' + errorThrown);
                        console.warn(jqXHR.responseText);
                });
        })
            .catch(swal.noop)
    });

3 个答案:

答案 0 :(得分:2)

将您点击的元素保存到变量中(在调用swal()之前):

var $this = $(this);

在以后的功能中使用:

$this.css("background-color", "red");

答案 1 :(得分:1)

添加变量tis = $(this);

$( ".thumbs" ).on("click", ".thumb-wrapper", function() {
 tis = $(this);

最后使用

tis.css("background-color", "white");

在你的ajax成功函数中

答案 2 :(得分:0)

使用body而不是'.thumb'

$(“document.body”)。on(“click”,“。first-wrapper”,function(){}