繁体   English   中英

在使用jquery创建动态值后,尝试将焦点集中到textarea的末尾

[英]trying to get focus to end of textarea after creating a dynamic value with jquery

这是我的javascript:

$(document).ready(function(){
    $(".reply").click(function(){
        var replyId = $(this).attr("id");
        $("textarea[name='comment']").val("<reply:"+replyId+">");
        $("textarea[name='comment']").ready(function(){
            moveCursorToEnd($(this));
        });
    });
});

function moveCursorToEnd(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();
    }
}

我对使用javascript的函数有点新,但这似乎不起作用它会将值放入但不关注textarea。 我确信我做的事情非常愚蠢,有什么想法吗?

您正在将jquery对象传递给期望DOM元素的函数。 你也想摆脱ready

$(".reply").click(function(){
    var replyId = $(this).attr("id");
    var $textArea = $("textarea[name='comment']");

    $textArea.val("<reply:"+replyId+">");

    moveCursorToEnd($textArea[0]);
});

http://jsfiddle.net/wC5Qm/1/

textarea的ready事件不会触发,因为一旦附加了事件,textarea就已经被加载了。 此外,您还必须将原始元素而不是jQuery对象传递给函数。 尝试改变这些线条

$("textarea[name='comment']").ready(function(){
    moveCursorToEnd($(this));
});

对此

moveCursorToEnd($("textarea[name='comment']")[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM