1. 程式人生 > >JQ在光標處插入文字

JQ在光標處插入文字

reat pre 擴展方法 cti 下標 string post tex xtend

內容轉載自網絡
這是一個JQ的擴展方法。在teatarea獲得焦點時,往光標處插入文字,擴展代碼如下
(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)

擴展方法調用方法為

//給按鈕添加點擊事件,
$(‘#btn‘).on(‘click‘,function(){
    $("目標textarea框").insert({"text":"要添加的文字"});
});

JQ在光標處插入文字