我试图在我的文本区域(#texttype)中完全禁用鼠标,但是要使其滑行,以便在单击包装器(#line)时将光标移动到该文本区域中已写入内容的末尾。下面的代码几乎可以正常工作,但是一旦取消选择文本区域,单击包装器就不会将光标放回末尾,这就像文本区域已锁定,因此用户无法再键入...
HTML:
<div id ="line">
<textarea wrap="off" draggable="false" id="texttype" name="texttype" spellcheck="false" class="type" onkeyup="countChar(this)" onkeypress="keypressed(e)"></textarea>
</div>
JS:
var toggle_mouse = $('#line').mousedown(function(event){
$('#texttype').focus(function(){
this.selectionStart = this.selectionEnd = this.value.length;
});
});
var mouse_off = $('#texttype').mousedown(function(event){
event.preventDefault();
});
最佳答案
试试这个代码:
var mouse_off = $('#texttype').mousedown(function (event) {
event.preventDefault();
})
.focus(function () {
this.selectionStart = this.selectionEnd = this.value.length;
});
var toggle_mouse = $('#line').mousedown(function (event) {
mouse_off.focus();
});
演示:http://jsfiddle.net/P3Bkp/
您的错误是您试图在mousedown事件处理程序中绑定textarea焦点事件。你不应该那样做。
关于javascript - 重新启用对js中键盘的访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21336061/