Maison > Questions et réponses > le corps du texte
Il y a plusieurs balises a dans une balise span, et les balises a sont implémentées via ajax. Je souhaite ajouter un événement de clic à la balise a, ajouter un style de classe à la balise a lorsqu'il clique et supprimer les styles de classe des autres balises a en même temps
ajax :
$.ajax({type:"post",url:"carbrand/findCarBrandHot",dataType:"json",success:function(data){
var html="<a class='on' href='' rel='nofollow'>不限</a> ";
var listr = "";
for(var i = 0; i < data.length; i++){
listr+="<a class='' title='' onclick='ch()'>"
+data[i].brand_name+" </a>";
}
html+=listr;
$(".clikbr").html(html);
}
});
html :
<span class="clikbr"></span>
javascript :
function ch(){
//方法能触发
//添加样式
$(this).addClass("on"); //这种方法不行
$(this).addClass("hoverWidgetactive").siblings().removeClass("hoverWidget active"); //也实现不了,
};
Il semble que les balises ajoutées via ajax ne puissent pas être obtenues. Je ne sais pas comment obtenir les balises
.ringa_lee2017-06-12 09:26:00
Utiliser la délégation d'événement
$('.clikbr').on('click', 'a', function() {
$(this).addClass("on");
$(this).addClass("hoverWidgetactive").siblings().removeClass("hoverWidget active");
});
高洛峰2017-06-12 09:26:00
//Vous pouvez le changer en ceci
$.ajax({type:"post",url:"carbrand/findCarBrandHot",dataType:"json",success:function(data){
var html="<a class='on' href='' rel='nofollow'>不限</a> ";
var listr = "";
for(var i = 0; i < data.length; i++){
listr+="<a class='' title='' onclick='ch()'>"
+data[i].brand_name+" </a>";
}
html+=listr;
$(".clikbr").html(html);
//必須在這裡給<a>標籤綁定事件
$(".clikbr a").on("click",function(){
$(this).addClass("on");
$(this).addClass("hoverWidgetactive").siblings().removeClass("hoverWidget active");
});
}
});