jquery addClass在ajax调用后无法正常工作

你好,我做了一个代码,需要在ajax调用后添加一个类。 我确信代码是正确的,但仍然没有添加类。 它真的很奇怪,因为代码中的其他一切都有效,我确信addClass的代码是正确的,我也检查过控制台是否存在任何错误,但没有错误。 这是我的代码

$(document).on('click', '.miclickks', function(event) { event.preventDefault(); var for_uid = $(this).parents("li").attr('data'); var for_name = $(this).parents("li").attr('unme'); var for_pic = $(this).parents("li").attr('upic'); var owner_uid = $('.row-fluid').attr('uid'); var owner_name = $('.row-fluid').attr('usnm'); var owner_pic = $('.row-fluid').attr('usp'); var type = "kiss"; var dataString = "type=" + type + "&for_uid=" + for_uid + "&for_name=" + for_name + "&for_pic=" + for_pic + "&owner_uid=" + owner_uid + "&owner_pic=" + owner_pic + "&owner_name=" + owner_name; $.ajax({ type: "POST", url: "include/ajax.php", data: dataString, success: function (html) { if(html=="300") { $('#myModal .modal-body p').html("Error Please Try Again."); $('#myModal').modal('show'); } else { $(this).addClass('active'); } } }); }); 

两种方式:

第一

 var that = this; $.ajax({ type: "POST", url: "include/ajax.php", data: dataString, success: function (html) { if (html == "300") { $('#myModal .modal-body p').html("Error Please Try Again."); $('#myModal').modal('show'); } else { $(that).addClass('active'); } } }); 

第二个 (使用context选项):

 $.ajax({ type: "POST", url: "include/ajax.php", data: dataString, context: this, success: function (html) { if (html == "300") { $('#myModal .modal-body p').html("Error Please Try Again."); $('#myModal').modal('show'); } else { $(this).addClass('active'); } } }); 

试试这个 –

 var $p = $(this); $.ajax({ type: "POST", url: "include/ajax.php", data: dataString, success: function (html) { if (html == "300") { $('#myModal .modal-body p').html("Error Please Try Again."); $('#myModal').modal('show'); } else { $p.addClass('active'); } } }); 

原因是this内部success()是XHR对象而不是被点击的元素。 您可以使用context选项将其强制为您想要的任何值。

例如:

 $.ajax({ context: this, // pass the clicked element via context ... success: function() { ... $(this).addClass('active'); // now this refers to the clicked element } }); 

也许我说错了,有人会纠正,但我认为错误在于这条指令: $(this).addClass('active'); 在这种情况下,’this’指的是ajax对象,所以请确保你正在调用proprer对象,在该对象上添加类激活