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功能正在工作。
答案 0 :(得分:2)
当你使用jQuery时,你应该绑定使用它的事件处理程序而不是丑陋的内联点击处理程序。
您的问题是由this
的错误上下文引起的,并且使用错误的选择器categ.actives
它会查找带有categ
类的actives
元素
//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
}