PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.4.2
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.4.2
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
learnpress / assets / src / js / vendor / jquery / jquery.caret.js

jquery.caret.js in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.4.2, at assets/src/js/vendor/jquery/jquery.caret.js

79 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function($) {
2 $.fn.caret = function(pos) {
3 var target = this[0];
4 var isContentEditable = target.contentEditable === 'true';
5 //get
6 if (arguments.length == 0) {
7 //HTML5
8 if (window.getSelection) {
9 //contenteditable
10 if (isContentEditable) {
11 target.focus();
12 var range1 = window.getSelection().getRangeAt(0),
13 range2 = range1.cloneRange();
14 range2.selectNodeContents(target);
15 range2.setEnd(range1.endContainer, range1.endOffset);
16 return range2.toString().length;
17 }
18 //textarea
19 return target.selectionStart;
20 }
21 //IE<9
22 if (document.selection) {
23 target.focus();
24 //contenteditable
25 if (isContentEditable) {
26 var range1 = document.selection.createRange(),
27 range2 = document.body.createTextRange();
28 range2.moveToElementText(target);
29 range2.setEndPoint('EndToEnd', range1);
30 return range2.text.length;
31 }
32 //textarea
33 var pos = 0,
34 range = target.createTextRange(),
35 range2 = document.selection.createRange().duplicate(),
36 bookmark = range2.getBookmark();
37 range.moveToBookmark(bookmark);
38 while (range.moveStart('character', -1) !== 0) pos++;
39 return pos;
40 }
41 // Addition for jsdom support
42 if (target.selectionStart)
43 return target.selectionStart;
44 //not supported
45 return 0;
46 }
47 //set
48 if (pos == -1)
49 pos = this[isContentEditable? 'text' : 'val']().length;
50 //HTML5
51 if (window.getSelection) {
52 //contenteditable
53 if (isContentEditable) {
54 target.focus();
55 window.getSelection().collapse(target.firstChild, pos);
56 }
57 //textarea
58 else
59 target.setSelectionRange(pos, pos);
60 }
61 //IE<9
62 else if (document.body.createTextRange) {
63 if (isContentEditable) {
64 var range = document.body.createTextRange();
65 range.moveToElementText(target);
66 range.moveStart('character', pos);
67 range.collapse(true);
68 range.select();
69 } else {
70 var range = target.createTextRange();
71 range.move('character', pos);
72 range.select();
73 }
74 }
75 if (!isContentEditable)
76 target.focus();
77 return this;
78 }
79 })(jQuery);