重新启用对js中键盘的访问

重新启用对js中键盘的访问

我试图在我的文本区域(#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/

10-11 01:19