繁体   English   中英

Ajax调用后要链接的addClass

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM