微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在ajax调用后addClass()函数不起作用

正在进行一个简单的AJAX调用,它会在有人点击锚点后触发.在AJAX成功之后,我想在触发AJAX的锚点添加一个类.

虽然脚本工作正常,并且success函数返回所有正确的数据,但当我尝试addClass()时它不起作用.我使用了hide()方法来查看jQuery是否正确运行,它也不起作用.控制台不会打印任何错误.

为了调试我使用了一个警报,它的工作原理!警报如何正常工作,并且addClass()和hide()都没有?

<a href="#" class="refreshor" value="20">1</a>
<a href="#" class="refreshor" value="40">2</a>
jQuery(document).ready(function($) {
    $('.refreshor').on('click',function(e){
        e.preventDefault();
        var search = $('#searchin').val();
        var page = $(this).text();
        var that = this;
        $.ajax({    
            type: "POST",
            url: "components/com_tagger/scripts/ajaxSearch.PHP",
            data: {
                "search": search,
                "page": page
            },
            success:function(response) {
                $('.ajaxSearchResults').html(response);
                $(that).addClass('preventer'); //this doesnt work
                $(that).hide(); //this doesnt work
                var test = $(that).text(); 
                alert(test); //this works!                  
            } 
        });
    });
});

解决方法:

在成功回调中,您将替换.ajaxSearchResults的内容

$('.ajaxSearchResults').html(response);

那不是指这个容器内的那些.

您需要使用委托,这将允许您绑定尚未在DOM中的元素上的事件

$('.ajaxSearchResults').on('click', '.refreshor',function(e){
    e.preventDefault();
    var search = $('#searchin').val();
    var page = $(this).text();

    var thisValue = $(this).attr('value'); // save the current value of the `a` clicked
    $.ajax({    
        type: "POST",
        url: "components/com_tagger/scripts/ajaxSearch.PHP",
        data: {
            "search": search,
            "page": page
        },
        success:function(response) {
            $('.ajaxSearchResults').html(response);

            var that = $('.ajaxSearchResults').find('.refreshor[value="'+thisValue+'"]'); 
            // look for the `a` that have the saved value.

            that.addClass('preventer');
            that.hide(); 
            var test = that.text(); 
            alert(test);        
        } 
    });
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐