• 技术文章 >web前端 >js教程

    jQuery 在光标定位的地方插入文字的插件_jquery

    2016-05-16 17:53:56原创646
    核心代码:
    复制代码 代码如下:

    (function($){
    $.fn.extend({
    "insert":function(value){
    //默认参数
    value=$.extend({
    "text":"123"
    },value);
    var dthis = $(this)[0]; //将jQuery对象转换为DOM元素
    //IE下
    if(document.selection){
    $(dthis).focus(); //输入元素textara获取焦点
    var fus = document.selection.createRange();//获取光标位置
    fus.text = value.text; //在光标位置插入值
    $(dthis).focus(); ///输入元素textara获取焦点
    }
    //火狐下标准
    else if(dthis.selectionStart || dthis.selectionStart == '0'){
    var start = dthis.selectionStart;    //获取焦点前坐标
    var end =dthis.selectionEnd;   //获取焦点后坐标
        //以下这句,应该是在焦点之前,和焦点之后的位置,中间插入我们传入的值 .然后把这个得到的新值,赋给文本框
          dthis.value = dthis.value.substring(0, start) + value.text + dthis.value.substring(end, dthis.value.length); }
        //在输入元素textara没有定位光标的情况
          else{
              this.value += value.text; this.focus();
          };
          return $(this);
        }
      })
    })(jQuery)

    主要思路:
      当点击某个元素的时候,让一个输入框,插入指定的值。?
      1.当点击某个元素的时候,应该让输入框获取焦点,因为只有获得了焦点,才能在里面输入值;
      IE下:document.selection.createRange()
      FF下:var start = dthis.selectionStart;    //获取焦点前坐标
         var end =dthis.selectionEnd;    //获取焦点后坐标
      2.获取当前输入框焦点的位置
      3.将值插入到输入框焦点的位置;
      4.再次获取焦点;保证光标在输入框内
    在线演示: http://demo.jb51.net/js/2012/myfocustext/
    打包下载: http://www.jb51.net/jiaoben/44153.html
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:光标定位 插入文字
    上一篇:一个基于jQuery的树型插件(OrangeTree)使用介绍_jquery 下一篇:javascript 在firebug调试时用console.log的方法_javascript技巧
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 聊聊Node.js path模块中的常用工具函数• JavaScript隐藏机制之垃圾回收知识总结• 手把手带你使用node开发一个命令行压缩工具• node实战之开发一个mycli命令行工具• JavaScript总结之18种常用数组方法
    1/1

    PHP中文网