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

  核心代码:

  

复制代码 代码如下:

  (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.glzy8.com/js/2012/myfocustext/

  打包下载: http://www.glzy8.com/jiaoben/44153.html