2011-04-28 66 views
0

如果我听文本框(textarea)按键事件,当用户输入任何字符时,我可以获取事件的坐标吗?在textBox或TextArea中获取事件的坐标?

$('#textAreaId').bind('keydown', function(event) {  
    var data = event.originalEvent.touches ? event.originalEvent.touches[0] : event; 
    alert(data.pageY);  
}); 

回答

0

你想要元素的位置还是脱字符的位置?

为了让你可以使用下面的函数(从another question借用)插入符的位置:

function getCaret(el) { 
    if (el.selectionStart) { 
    return el.selectionStart; 
    } else if (document.selection) { 
    el.focus(); 

    var r = document.selection.createRange(); 
    if (r == null) { 
     return 0; 
    } 

    var re = el.createTextRange(), 
     rc = re.duplicate(); 
    re.moveToBookmark(r.getBookmark()); 
    rc.setEndPoint('EndToStart', re); 

    return rc.text.length; 
    } 
    return 0; 
} 

要获得textarea元素相对于文档的位置,您可以使用.offset

$("#textAreaId").bind('keydown', function(event){ 
    var offset = $(this).offset(); 
    console.log(offset); 
}); 

我把一个test case on jsFiddle

+0

是的我olredy看到这样的代码。但我试图从窗口顶部的textArea中获取光标的确切坐标。这将是完美的解决方案。 – 2011-04-28 09:13:50

+0

@Darien,光标或插入符号? – mekwall 2011-04-28 10:26:02

+0

需要插入它的文本区域的x/y坐标。 – 2011-04-28 14:17:41