关闭jQuery colorbox后,在文本区域的文本末尾返回焦点

时间:2013-07-11 10:22:51

标签: jquery

这让我烦恼。我有一个应用程序启动jQuery颜色框,然后将内容插入文本区域编辑器然后它关闭此行:

$.colorbox.close();

问题是我无法将焦点或鼠标光标返回到插入内容末尾的闪烁。如何在jQuery中执行此操作?我想在关闭彩盒后添加此代码。但我无法弄明白。谢谢你的帮助。

这是一个Wordpress文本编辑器,可以选择:

$('#content')

我在彩盒关闭后试过这个:

$('#content').focus();

它不起作用。

2 个答案:

答案 0 :(得分:1)

诀窍是添加到colorbox onClosed事件(将#content替换为文本区域的ID:

                onClosed: function() {

                    //Assign focus after inserting content

                    var content_inserted = $("#content").val();
                    $("#content").focus().val("").val(content_inserted);

                    }

注意我根本不能依赖:

$('#content').focus();

即使在onCLosed事件中,因为它没有将光标放在其他浏览器(如Chromium或Chrome)上插入文本的末尾。我需要先重点关注文本区域内容,然后插入它。

答案 1 :(得分:0)

这是

的功能
function moveCaretToEnd(el) {
    if (typeof el.selectionStart == "number") {
        el.selectionStart = el.selectionEnd = el.value.length;
    } else if (typeof el.createTextRange != "undefined") {
        el.focus();
        var range = el.createTextRange();
        range.collapse(false);
        range.select();
    }
}

演示:http://jsfiddle.net/ghAB9/6/