如何使用jQuery在一个contenteditable div中移动插入符?

时间:2014-01-10 16:18:15

标签: javascript jquery events dom

我正在尝试将插入符号置于一个令人满意的div中。 div没有setSelectionRange或createTextRange。 (我现在正在使用Chrome。)

所以我测试了是否可以发送按键事件:

var e = jQuery.Event("keypress", { keyCode : 39} );
jQuery(myDiv).trigger(e);

它不起作用。该事件未显示在myDiv的处理程序中。 < =错了。它确实出现在监听器中,但插入符不会移动。 (keyCode = 39是向右箭头。)

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

在触发处理程序之前绑定处理程序时,应显示该事件:

(function($){
    $(function() {
        $('#foobar').keypress(function(event) {
            console.log(event.which);
        });

        var e = $.Event("keypress", { which : 39} );
        $('#foobar').trigger(e);
    });
})(jQuery);

当您访问该页面时,会在控制台中记录39

working fiddle

答案 1 :(得分:0)

由于问题的编辑与您最初提出的问题完全不同,请查看以下内容:

How to move cursor to end of contenteditable entity