第一次提交
This commit is contained in:
commit
8121362a03
4412 files changed
+1091845
No files matched your search
@@ -0,0 +1,80 @@
|
||||
define(function(require, exports, module) {
|
||||
|
||||
(function($){
|
||||
$.fn.extend({
|
||||
// 获取当前光标位置的方法
|
||||
getCurPos:function() {
|
||||
var curCurPos = '';
|
||||
var all_range = '';
|
||||
if (navigator.userAgent.indexOf("MSIE") > -1) { //IE
|
||||
|
||||
if( $(this).get(0).tagName == "TEXTAREA" ){
|
||||
// 根据body创建textRange
|
||||
all_range = document.body.createTextRange();
|
||||
// 让textRange范围包含元素里所有内容
|
||||
all_range.moveToElementText($(this).get(0));
|
||||
} else {
|
||||
// 根据当前输入元素类型创建textRange
|
||||
all_range = $(this).get(0).createTextRange();
|
||||
}
|
||||
|
||||
// 输入元素获取焦点
|
||||
$(this).focus();
|
||||
|
||||
// 获取当前的textRange,如果当前的textRange是一个具体位置而不是范围,textRange的范围从start到end.此时start等于end
|
||||
var cur_range = document.selection.createRange();
|
||||
|
||||
// 将当前的textRange的end向前移"选中的文本.length"个单位.保证start=end
|
||||
cur_range.moveEnd('character',-cur_range.text.length)
|
||||
|
||||
// 将当前textRange的start移动到之前创建的textRange的start处, 此时当前textRange范围变为整个内容的start处到当前范围end处
|
||||
cur_range.setEndPoint("StartToStart",all_range);
|
||||
|
||||
// 此时当前textRange的Start到End的长度,就是光标的位置
|
||||
curCurPos = cur_range.text.length;
|
||||
} else {
|
||||
// 文本框获取焦点
|
||||
$(this).focus();
|
||||
// 获取当前元素光标位置
|
||||
curCurPos = $(this).get(0).selectionStart;
|
||||
}
|
||||
// 返回光标位置
|
||||
return curCurPos;
|
||||
},
|
||||
// 设置当前光标位置方法
|
||||
setCurPos:function(start,end) {
|
||||
if(navigator.userAgent.indexOf("MSIE") > -1){
|
||||
var all_range = '';
|
||||
|
||||
if( $(this).get(0).tagName == "TEXTAREA" ){
|
||||
// 根据body创建textRange
|
||||
all_range = document.body.createTextRange();
|
||||
// 让textRange范围包含元素里所有内容
|
||||
all_range.moveToElementText($(this).get(0));
|
||||
} else {
|
||||
// 根据当前输入元素类型创建textRange
|
||||
all_range = $(this).get(0).createTextRange();
|
||||
}
|
||||
|
||||
$(this).focus();
|
||||
|
||||
// 将textRange的start设置为想要的start
|
||||
all_range.moveStart('character',start);
|
||||
|
||||
// 将textRange的end设置为想要的end. 此时我们需要的textRange长度=end-start; 所以用总长度-(end-start)就是新end所在位置
|
||||
all_range.moveEnd('character',-(all_range.text.length-(end-start)));
|
||||
|
||||
// 选中从start到end间的文本,若start=end,则光标定位到start处
|
||||
all_range.select();
|
||||
}else{
|
||||
// 文本框获取焦点
|
||||
$(this).focus();
|
||||
|
||||
// 选中从start到end间的文本,若start=end,则光标定位到start处
|
||||
$(this).get(0).setSelectionRange(start,end);
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
});
|
||||
Reference in new issue
Block a user