Heim > Fragen und Antworten > Hauptteil
Ein Span-Tag enthält mehrere a-Tags, und die a-Tags werden über Ajax implementiert. Ich möchte dem a-Tag ein Klickereignis hinzufügen, dem a-Tag einen Klassenstil hinzufügen, wenn er klickt, und gleichzeitig die Klassenstile anderer a-Tags löschen
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"); //也实现不了,
};
Es scheint, dass die über Ajax hinzugefügten Tags nicht abgerufen werden können. Ich weiß nicht, wie ich die Tags erhalten kann
ringa_lee2017-06-12 09:26:00
使用事件委派
$('.clikbr').on('click', 'a', function() {
$(this).addClass("on");
$(this).addClass("hoverWidgetactive").siblings().removeClass("hoverWidget active");
});
高洛峰2017-06-12 09:26:00
//你可以改成這樣
$.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");
});
}
});