当我点击某个特定课程时,会弹出一个甜蜜警报。如果我确认,它应该更改我单击的元素的背景颜色并更改现有元素的背景颜色。如果我在点击后立即执行此操作,我可以使用"这个"像:
$(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)
});
答案 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(){}