javascript - 在一個a標簽內添加了一個單擊事件,想在時間里面給這個a標簽添加類樣式
問題描述
在一個span標簽里面有多個a標簽,a標簽是通過ajax實現的。想在a標簽里面添加單擊事件,在他單擊的時候給這個a標簽添加類樣式 ,同時刪除其他a標簽類樣式
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'); //也實現不了, };
貌似通過ajax新增的標簽獲取不到,不知道怎么獲取標簽
問題解答
回答1:使用事件委派
$(’.clikbr’).on(’click’, ’a’, function() { $(this).addClass('on'); $(this).addClass('hoverWidgetactive').siblings().removeClass('hoverWidget active'); });回答2:
//你可以改成這樣
$.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'); }); }});
