js:

/*******************************************
 *
 * 插入光标处的插件
 * @authors Du xin li
 * @update    2015-10-25
 *
*********************************************/

$.fn.extend({  
    insertContent : function(myValue, t) {  
        var that = $(this);
        var $t = $(this)[0];  
        if (document.selection) {  
            this.focus();  
            var sel = document.selection.createRange();  
            sel.text = myValue;  
            this.focus();  
            sel.moveStart('character', -l);  
            var wee = sel.text.length;  
            if (arguments.length == 2) {  
            var l = $t.value.length;  
            sel.moveEnd("character", wee + t);  
            t <= 0 ? sel.moveStart("character", wee - 2 * t - myValue.length) : sel.moveStart("character", wee - t - myValue.length);  
            sel.select();  
            }  
        } else if ($t.selectionStart || $t.selectionStart == '0') {  
            var startPos = $t.selectionStart;  
            var endPos = $t.selectionEnd;  
            var scrollTop = $t.scrollTop;  
            $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos,$t.value.length);  
            this.focus();  
            $t.selectionStart = startPos + myValue.length;  
            $t.selectionEnd = startPos + myValue.length;  
            $t.scrollTop = scrollTop;  
            if (arguments.length == 2) {
                $t.setSelectionRange(startPos - t,$t.selectionEnd + t);  
                this.focus();
            }  
        } else {                              
            this.value += myValue;                              
            this.focus();  
        }  
    }  
})

使用方法:

/**
* 点击表情按钮插入表情方法
* @param {string} dom 任意子节点
* @param {Object} event event对象
*/
fc.emote = function(dom, event){
if (dom) {
this.setParam(dom);
} else {
return false;
}
var that = $(dom);
var e = window.event || event;
if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble = true;
}
//显示表情弹出层
$('.fresh-dialog-emote').removeClass('hide');
//当前文本框textarea
var _currentTextarea = this.param.form;
//点击表情插入文本框
$('.fresh-dialog-emote').off('click', '.fresh-jsSmilies li').on('click', '.fresh-jsSmilies li', function(){
var _val = $(this).data('action');
console.log(_val)
console.log(_currentTextarea.length)
_currentTextarea.focus();
_currentTextarea.insertContent(_val);
$('.fresh-dialog-emote').addClass('hide');
})
}

// 点击表情按钮,弹出表情弹出层
$('.fresh-list').off('click', '.fresh-comment-emote-btn').on('click', '.fresh-comment-emote-btn', function(event){
fresh.comment.emote(this, event);
});

最新文章

  1. js,jq,css选择器
  2. ios合并静态库
  3. MYSQL实现主从复制
  4. FIS
  5. 扒皮下GitHub 404的图片层次轴动特效
  6. velocity分页模板
  7. Effective Java 08 Obey the general contract when overriding equals
  8. 如何将根文件系统制作成yaffs格式,并设置从yaffs启动
  9. Python之函数进阶
  10. Linq101-Generation
  11. Asp.net MVC 与 Asp.net Web API 区别
  12. js url编码函数
  13. C指针1
  14. [转载自阿里丁奇]各版本MySQL并行复制的实现及优缺点
  15. 面向对象写的简单的colors rain
  16. 码农、黑客和2B程序员之间的区别
  17. yapi部署文档
  18. Alpha冲刺随笔二:第二天
  19. 删掉centos原有的openjdk并安装sun jdk
  20. 记 linux 下面初次使用的convert 工具完成拼长图功能

热门文章

  1. Linux命令之lsb_release - 查看当前系统的发行版信息
  2. 如何用STAF进行自动化测试分布式运行
  3. go interface 的坑
  4. 解决线上服务logback 乱码问题
  5. 代码收藏系列--php--生成简短唯一订单号(转载)
  6. 关于less在DW中高亮显示问题
  7. 转 mongodb win7 32位系统安装以及配置
  8. 豆瓣上9分以上的IT书籍-编程技术篇
  9. Java – How to join Arrays
  10. JQ:命令行 json 解析神器 —— 命令行的Jsonview