gpt4 book ai didi

jquery - 即使在 ajax 调用之外将值分配给 DOM 之后,$(this) 也不会在 ajax 成功中触发

转载 作者:行者123 更新时间:2023-12-01 07:09:46 24 4
gpt4 key购买 nike

已关注 these instructions

我将 this 分配给 var 元素

var element = this;

在 AJAX 调用之前,它工作正常并且被正确调用

$(element).parent('.refreshstats').html('<i class="fa fa-refresh refresh-stats fa-spin" id="'+id+'" url="'+url+'"></i>');

如果我尝试在成功回调中再次调用它,它不会触发

$(element).parent('.refreshstats').html('<i class="fa fa-refresh refresh-stats" id="'+id+'" url="'+url+'"></i>');

JQUERY

$(document).on('click', '.refresh-stats', function() {
var id = $(this).attr('id');
var url = $(this).attr('url');
var element = this;
$(element).parent('.refreshstats').html('<i class="fa fa-refresh refresh-stats fa-spin" id="'+id+'" url="'+url+'"></i>');
$.ajax({
type: "POST",
url: "refresh-stats.php",
data:({id: id, url: url}),
success: function(data) {
$(element).parent('.refreshstats').html('<i class="fa fa-refresh refresh-stats" id="'+id+'" url="'+url+'"></i>');
var result = $.parseJSON(data);
if (result[0] == 'No') {
$('.indexed[data-pk="'+id+'"]').html('<span class="label label-danger">No</span>')
}
if (result[0] == 'Yes') {
$('.indexed[data-pk="'+id+'"]').html('<span class="label label-success">Yes</span>')
}
if (result[1] == 'No') {
$('.dindexed[data-pk="'+id+'"]').html('<span class="label label-danger">No</span>')
}
if (result[1] == 'Yes') {
$('.dindexed[data-pk="'+id+'"]').html('<span class="label label-success">Yes</span>')
}
if (result[2] == 'No') {
$('.removed[data-pk="'+id+'"]').html('<span class="label label-danger">No</span>')
}
if (result[2] == 'Yes') {
$('.removed[data-pk="'+id+'"]').html('<span class="label label-success">Yes</span>')
}
}
});
});

最佳答案

这是一个 XY 问题。

您可能只想更改类 - 并且您必须使用正确的类名 - 我使用了 .refresh-stats 因为您在 .refreshstats 上遇到了错误。

$(document).on('click', '.refresh-stats', function() {
var id = this.id;
var url = $(this).attr('url');
var $element = $(this); // store the jQuery object
$(this).addClass("fa-spin"); // set the spinner
$.ajax({
type: "POST",
url: "refresh-stats.php",
data:({id: id, url: url}),
success: function(data) {
$element.removeClass("fa-spin"); // remove the spinner

我还建议更改

中的文档

$(document).on('click', '.refresh-stats', function() {

到静态父元素的选择器,因为它更有效

关于jquery - 即使在 ajax 调用之外将值分配给 DOM 之后,$(this) 也不会在 ajax 成功中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com