用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2447|回复: 2
收起左侧

[讨论/交流] 貌似表情辅助函数可以完善得更好啊

[复制链接]
发表于 2011-7-24 18:00:04 | 显示全部楼层 |阅读模式
      一个页面如果用到多次表情,就需要放到不同的容器里,因此insert_smiley()参数不同,插入表情每次都需要查询然后加载。
     我觉得表情的模板都是相同的,因此应该是可以把加载后的表情HTML放到一个JS变量里。其他地方需要用到表情的时候,就把JS变量直接写入DIV,现在自己利用表情的IMG的ALT属性 来动态更改insert_smiley()的参数。
     当然 可以直接改原来的表情函数 或者扩展 。。
发表于 2011-7-25 09:06:34 | 显示全部楼层
嗯,完善后可以放出与大家分享
 楼主| 发表于 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 最后 当然还需要写一个容器的事件,使得容器在鼠标移入可以显示出来...

本版积分规则