1
我發現下面的代碼在這裏SO拿到光標CONTENTEDITABLE DIV的位置,但它總是返回0獲取CONTENTEDITABLE DIV光標位置
應檢索其位置的功能:
new function($) {
$.fn.getCursorPosition = function() {
var pos = 0;
var input = $(this).get(0);
// IE Support
if (document.selection) {
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', -input.value.length);
pos = sel.text.length - selLen;
}
// Firefox support
else if (input.selectionStart || input.selectionStart == '0')
pos = input.selectionStart;
return pos;
}
} (jQuery);
我用它來測試它的代碼:
$('div.MESSAGE_OF_DAY').keyup(function() {
alert($(this).getCursorPosition()); // always returns 0???
});
我使用Chrome(8.0.552.215),如果它很重要。
哇,昨天晚上我才掙扎着,因爲我發現它確實沒有回到正確的位置(我被回答者警告過)。特別是當這變得更復雜時,例如只有一個詞:P所以非常感謝你檢查這個已經回答的問題,指出我正確的方向!要檢查出來,並保持張貼。 – PeeHaa 2010-12-10 18:16:48