【问题标题】:jquery, textarea in an html function, the cursor goes awayjquery,html函数中的textarea,光标消失
【发布时间】:2013-02-17 13:12:46
【问题描述】:

我有这个简单的 Jquery 代码:

$('.answerComment').click(function() {
    $(this).children('.answerForm').html('<textarea></textarea>');  
});

但是一旦我点击文本区域,光标就会消失,如果我想写点东西,我需要保持鼠标左键点击

知道为什么吗?

【问题讨论】:

  • 我认为这是因为新的 textarea 是 .answerComment 的子项,单击它会触发相同的功能(将 textarea 替换为新功能)。
  • @Juhana 感谢您的回答,但没有旧的 textarea,我只想在单击 .answComment 时在 .answerForm 中出现一个 texteare
  • 你没看懂评论。当您单击.answerComment 时,它会创建文本区域;当您单击 textarea 开始在其上输入时,会触发相同的事件并将 textarea 替换为另一个。
  • @Juhana 哦,好吧,对不起,我不明白第一名。我将在 .answerComment 外面显示 texteare 非常感谢您的帮助

标签: jquery cursor textarea


【解决方案1】:

试试这个:

$('.answerComment').click(function(e) {
    if (e.target.nodeName == 'TEXTAREA') return;
    $(this).children('.answerForm').html('<textarea></textarea>');  
});

但您选择的不是显示文本区域的最佳方式。

【讨论】:

  • 不客气。但是,我建议您在 .answerComment 容器之外显示您的 textarea。
【解决方案2】:

这是因为点击子元素时也会调用 click()

您可以通过检查实际点击了哪个元素来避免这种情况

$('.answerComment').click(function(e) {

    if ($(e.target).hasClass("answerComment")){
        $(this).children('.answerForm').html('<textarea></textarea>');    
    }


});

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 1970-01-01
    • 2012-08-16
    • 2010-10-01
    • 2013-12-17
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多