[英]addClass to link after ajax call
我有一些问题。 我正在使用drupal视图公开的过滤器,它通过ajax调用对内容进行排序。 这意味着我单击“按名称排序”,并且下面的内容无需页面刷新即可排序。 然后我决定将特殊类添加到活动排序链接。
$(document).on('click', '.form-item-sort-bef-combine', function(){
$(this).addClass('selected-link');
});
它可以正常工作,但是当我单击链接时,类会添加一秒钟,然后在刷新ajax后消失。 似乎$(this)在ajax之后停止工作。 有任何想法吗?
$(document).on('click', '.form-item-sort-bef-combine', function(){
$('.form-item-sort-bef-combine').addClass('selected-link');
});
也许这可以解决您的问题
EDITED
var tmp;
$(document).on('click', '.form-item-sort-bef-combine', function(){
tmp = $(this).attr('class');
});
$.ajax({
url: 'url',
type: 'GET',
data: data,
success: function(data) {
...
},
complete: function() {
$('.' + tmp).addClass('selected-link');
}
});
就像其他人提到的那样,我认为我们可能需要更多信息来试图弄清正在发生的事情。
切换到普通的NativeJS之后,我并没有真正使用jQuery。但是我感觉像MIGHT一样有用吗?
$('body').on('click', '.form-item-sort-bef-combine', function(){
$(this).addClass('selected-link');
});
除了$('body'),您还可以尝试使用父选择器,例如$('#form-wrapper')或代码中可能包含的任何内容。
您的代码看起来正确..但是也许 $(document)在这种情况下不起作用?
希望这可以帮助
祝你好运
您可以在$ajax
提供的done()
函数中或在更新DOM之后在success()
函数中执行此操作 。
在done()
函数中执行此done()
您的ajax
函数应如下所示:
$.ajax({
type:'POST',
url:'/whatever',
success:function(data){
//update your DOM here
}
}).done(function(){
//add your class here
$(".form-item-sort-bef-combine").addClass('selected-link');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.