核心代碼:
. 代碼如下:
(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