var getLastThree= function(){ $.post('get_weibo.php',{},function(text){ var json=eval('('+text+')'); var html=''; var jlen=json.length; for (var i=0;i<jlen;i++ ){ var str=json[i].content; var re=/\[.*?\]/ig;
if (re.test(str)==true){ var im=str.match(re); for (var j=0;j<im.length ;j++ ){ var aim=im[j].match(/[1-9]\d*\.?\d*/); str=str.replace(im[j],' <img src="'+'img/face/'+aim+'.gif'+'" />'); } html+="<div class='weibo_box'><em>"+json[i].date+"</em><h2>"+json[i].username+"</h2><div class='weibo_cont'>"+str+"</div></div>"
}
} $('.weibo').html(html); }) } 上面是请求的函数,我在其他地方调用了的,下面就是出现问题的代码段了,这是发送表情的代码,每次点击表情框里面的表情发送的表情数量都在增加,而且在360浏览器先输入文字表情就发送不了了,把发送表情的click事件放外面又会出现DOM加载问题。怎么办呢 $(function(){ //表情 var tip='表情'; var on=true; $('.choice_ul li').eq(0).bind('click',function(){ $('.biaoq').css('display','block'); var table='<table cellspacing=0 cellpadding=0><tr>'; if (on==true){ for(var i=1; i<=75; i++){ biaoq = '[/'+tip+i+']'; table += '<td><img src="'+'img/face/'+i+'.gif" bq="'+biaoq+'"/></td>'; if( i % 15 == 0 )table += '</tr><tr>'; } table+='</tr></td>'; $('.biaoq').append(table); } on=false; $('.biaoq img').bind('click',function(){ var text=$(this).attr('bq'); $('.text_box textarea').append(text);
});
});
})
先取消绑定事件再重新绑定,要不没点击一下 $('.choice_ul li')就给img绑定一次click事件累加起来了 $('.biaoq img').unbind('click').bind('click', function () { var text = $(this).attr('bq'); $('.text_box textarea').append(text); });不懂你的dom结构怎么样的,最好的办法是在getLastThree中给未添加事件的img添加事件
$.post('get_weibo.php',{},function(text){
var json=eval('('+text+')');
var html='';
var jlen=json.length;
for (var i=0;i<jlen;i++ ){
var str=json[i].content;
var re=/\[.*?\]/ig;
if (re.test(str)==true){
var im=str.match(re);
for (var j=0;j<im.length ;j++ ){
var aim=im[j].match(/[1-9]\d*\.?\d*/);
str=str.replace(im[j],' <img src="'+'img/face/'+aim+'.gif'+'" />');
} html+="<div class='weibo_box'><em>"+json[i].date+"</em><h2>"+json[i].username+"</h2><div class='weibo_cont'>"+str+"</div></div>"
}
}
$('.weibo').html(html);
})
}
上面是请求的函数,我在其他地方调用了的,下面就是出现问题的代码段了,这是发送表情的代码,每次点击表情框里面的表情发送的表情数量都在增加,而且在360浏览器先输入文字表情就发送不了了,把发送表情的click事件放外面又会出现DOM加载问题。怎么办呢
$(function(){
//表情
var tip='表情';
var on=true;
$('.choice_ul li').eq(0).bind('click',function(){
$('.biaoq').css('display','block');
var table='<table cellspacing=0 cellpadding=0><tr>';
if (on==true){
for(var i=1; i<=75; i++){
biaoq = '[/'+tip+i+']';
table += '<td><img src="'+'img/face/'+i+'.gif" bq="'+biaoq+'"/></td>';
if( i % 15 == 0 )table += '</tr><tr>';
}
table+='</tr></td>';
$('.biaoq').append(table);
}
on=false;
$('.biaoq img').bind('click',function(){
var text=$(this).attr('bq');
$('.text_box textarea').append(text);
});
});
})
var text = $(this).attr('bq');
$('.text_box textarea').append(text);
});不懂你的dom结构怎么样的,最好的办法是在getLastThree中给未添加事件的img添加事件