首页 文章

单击'a href'时不添加类

提问于
浏览
0
function cat_skills(){

    //  if ($(this).hasClass("actives")){
        alert('hui');
         jQuery('.cateeg li categ.actives').removeClass('actives');
     jQuery(this).addClass('actives');
    //  }
        var  cat_skills= jQuery('.categ').prev('input[name="hidden"]').val();//jQuery('.actives').next().val();
        jQuery('.cat_ski').val(cat_skills);
        alert(cat_skills);
        var  cata= jQuery('.catt').val();
        var  cat_tags= jQuery('.cat_ta').val();
        var ajaxurl = '/wp-admin/admin-ajax.php';
        var data = {
                'action' : 'fair_actionss',
                'cat' : cata,
                'cat_skills': cat_skills,
                'cat_tags': cat_tags
        };
        jQuery.post(ajaxurl, data, function(data){
            //alert(data);
            jQuery('.custom_portfolio_file').html(data)

        });     

}

当我点击一个href标签时,addClass和removeClass不工作,但它显示一个警报,并且ajax功能正在工作 .

1 回答

  • 2

    当你使用jQuery时,你应该 bind 事件处理程序使用它而不是丑陋的内联点击处理程序 .

    您的问题是由于 this 的错误上下文和使用错误的选择器而出现的 categ.actives 它会查找带有 actives 类的 categ 元素

    //Bind event using jQuery
    $('.cateeg li a.categ').on('click', cat_skills);
    
    function cat_skills() {
        if ($(this).hasClass("actives")) {
            //Your selector is incorrect
            jQuery('.cateeg li a.categ.actives').removeClass('actives');
            jQuery(this).addClass('actives');
        }
    
        //Your existing code    
    }
    

    否则,将调用处理程序的元素引用(即 this )传递给 cat_skills 函数

    <a href="" class="categ" onclick="cat_skills(this)">
    

    并使用元素引用修改您的函数

    function cat_skills(elem) {
        if ($(elem).hasClass("actives")) {
            //Your selector is incorrect
            jQuery('.cateeg li a.categ.actives').removeClass('actives');
            jQuery(elem).addClass('actives');
        }
    
        //Your existing code    
    }
    

相关问题