首页 > 代码库 > jQuery插件,将内容插入到光标处

jQuery插件,将内容插入到光标处

(function ($) {    $.fn.extend({        insertAtCaret : function (myValue) {            var $t = $(this)[0];            if (document.selection) {                this.focus();                sel = document.selection.createRange();                sel.text = myValue;                this.focus();            } 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;                } else {                    this.value += myValue;                    this.focus();                }        }    })})(jQuery);
//调用方法:
$("select").insertAtCaret();

应用案例
<!DOCTYPE html><html><head>    <title>无标题页</title>    <script type="text/javascript" src="http://sy.zgsapt.com/js/jquery-1.7.2.min.js"></script>    <script type="text/javascript">        (function ($) {            $.fn.extend({                insertAtCaret: function (myValue) {                    var $t = $(this)[0];                    if (document.selection) {                        this.focus();                        sel = document.selection.createRange();                        sel.text = myValue;                        this.focus();                    } 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;                        } else {                            this.value += myValue;                            this.focus();                        }                }            })        })(jQuery);        $(document).ready(function () {            $("#numd").bind("mouseleave", function () {                document.getElementById(keybored).style.display = none;                document.getElementById(Nm).blur();            });            $("#Nm").focus(function () {                document.getElementById(keybored).style.display = ‘‘;            });            $(".readbtns").click(function () {                $("#Nm").insertAtCaret($(this).val());            });        });    </script></head><body>    <ul>        <li>            <input />            <div>            </div>        </li>    </ul>    <input id="hid" type="text" value="" style="display: none" />    <span id="numd" style="border: 1px solid red; clear: both; display: inline-block; font: 800em;">        <input type="text" id="Nm" name="Nm" value="" />        <div style="display: none; border: 1px solid #A2B4C6; width: 150px; height: 400px;"            id="keybored">            <input type="button" class="readbtns" value="1" />            <input type="button" class="readbtns" value="2" />            <input type="button" class="readbtns" value="3" />            <input type="button" class="readbtns" value="4" />            <input type="button" class="readbtns" value="5" />            <input type="button" class="readbtns" value="6" />            <input type="button" class="readbtns" value="7" />            <input type="button" class="readbtns" value="8" />            <input type="button" class="readbtns" value="9" />        </div>    </span></body></html>