移动光标位置在带有滚动插件的文本区域上不起作用

Move Cursor positioning not working on textarea with enscroll plugin

本文关键字:文本 区域 不起作用 插件 滚动 位置 光标 移动      更新时间:2023-09-26

我已经为文本区域应用了 enscroll 插件:

$('textarea[name="text_area_name"]').enscroll({
    showOnHover: true, 
    scrollIncrement: 20, 
    minScrollbarLength: 25, 
    verticalTrackClass: 'track3',
    verticalHandleClass: 'handle3'
});

现在的问题是空间和光标位置(左、上、右、向下箭头)不适用于该文本区域。对于间距,我应用了以下代码,它完美地在文本区域写入时添加间距:

$('#text_area_name').keydown(function(e) {
    var event = e.which || e.keyCode;
    // Handle Space button       
    if (event === 32) {
        var data = $(this).val();
        data += " ";
        $(this).val(data);
    }
});

.CSS

textarea{
    width: 190px !important;
    height: 50px;
    resize: none;
    margin: 10px 0 0 0;
    border-radius: 5px;
    box-shadow: none;
    padding:10px;
    background-color: #EAEAEA;
}

但是我不知道如何应用箭头键代码并更改光标的位置。谁能指导我实现这一目标?

更新:我注意到当我单击文本区域并按向上和向下键时,动态生成的滚动会移动,然后我认为 enscroll 插件中的问题,但我不确定。

我不知道

它是否正确,但是我已经更改了核心enscroll插件的一部分,它对我有用:

keyHandler = function( event ) {
    var $this = $( this ),
        data = $this.data( 'enscroll' ),
        scrollIncrement;
    // don't handle events that have just bubbled up
    if ( event.target === this && data ) {
        scrollIncrement = data.settings.scrollIncrement;
        switch( event.keyCode ) {
            /*case 32: // space*/
            case 34: // page down
                scrollVertical( this, $this.height() );
                return false;
            case 33: // page up
                scrollVertical( this, -$this.height() );
                return false;
            case 35: // end
                scrollVertical( this, this.scrollHeight );
                return false;
            case 36: // home
                scrollVertical( this, -this.scrollHeight );
                return false;
            /*case 37: // left
                scrollHorizontal( this, -scrollIncrement );
                return false;
            case 38: // up
                scrollVertical( this, -scrollIncrement );
                return false;
            case 39: // right
                scrollHorizontal( this, scrollIncrement );
                return false;
            case 40: // down
                scrollVertical( this, scrollIncrement );
                return false;
                                    */
        }
        return true;
    }
}

这是处理我努力争取的所有键(空格 -> 32 和 37 到 40 个方向键)的功能,我只是禁用了关联的键。

现在它为我工作;)

但是有没有办法在核心文件之外禁用这些键? 使用插件参考等?