|
楼主 |
发表于 2011-7-25 09:53:58
|
显示全部楼层
这个只针对一个页面内 需要有多个地方插入表情。
没有改原来的PHP函数。只是通过JS 加上设置表情来实现。
1 设置表情img 里的alt属性 ,通过alt属性,可以获得表情的数组KEY。我用的是类似以下的数组
'[大兵]' => array('dabing.gif', '24', '24', '大兵'),
通过alt属性'大兵' 加上'[' ']'就可以获得该表情的KEY
2 JS函数
JS复制代码 var smileys='';//作为储存表情HTML的变量
//获取表情 eid 文本输入框ID, show_eid 表情ID
function get_smileys(eid,show_eid)
{
if(!eid || !show_eid || $('#'+show_eid+' .smileys').html()) return false;//show_eid的一个class为smileys的div作为表情容器
if(smileys)//如果JS变量已经储存了表情的HTML,可以直接写入
{
$('#'+show_eid+' .smileys').html(smileys);向容器写入html
//自己重新给表情绑定 insert_smiley函数,通过ALT获取KEY
$('#'+show_eid+' .smiley a').attr('onclick','insert_smiley("['+$('#'+show_eid+' .smiley img').attr('alt')+']", "'+eid+'")');
}
else//否则就需要AJAX查询
{
//这里根据自己需要 查询
var myAjax = $.post(
'smileys',
{
eid:eid
},
function(r)
{
if(r.html)//我把表情的HTML都放在r.html里
{
$('#'+show_eid+' .smileys').html(r.html);
smileys = r.html;//写入后还需要把这个结果给JS变量 以便下次使用
}
else
{
var msg = r.msg ? r.msg : '未知错误,获取表情失败,请刷新再试';
alert(msg);
return false;
}
},
'json'
);
}
} 复制代码
3 document ready的时候 给需要的文本域 绑定表情
4 最后 当然还需要写一个容器的事件,使得容器在鼠标移入可以显示出来...
|
|