2013-02-17 97 views
0

我有这个简单的jQuery代码:的jQuery,在textarea的一个HTML功能,光标消失

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

,但只要我点击textarea的光标消失,如果我想写点东西,我需要保持点击鼠标左键

任何想法为什么?

+0

我想这是因为新的textarea是避免这种情况的时候'.answerComment'的一个孩子并点击它将触发这个相同的功能(用一个新的替换textarea)。 – JJJ 2013-02-17 13:15:24

+0

@Juhana谢谢你的回答,但是没有老的textarea,我只想要一个texteare出现在.answerForm当我点击.answComment – 2013-02-17 13:18:43

+1

你不理解评论。当你点击'.answerComment'时,它会创建textarea;当你点击textarea开始输入时,触发相同的事件,textarea被替换为另一个。 – JJJ 2013-02-17 13:20:01

回答

0

试试这个:

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

但你选择不显示你的textarea的最佳方式。

+0

它的工作完美,非常感谢! – 2013-02-17 13:21:34

+1

不客气。不过,我建议你在'.answerComment'容器外面显示'textarea'。 – dfsq 2013-02-17 13:22:55

+0

好的,我会适用你的建议,所以再次感谢:) – 2013-02-17 13:23:55

0

这是因为点击()也称为子元素上点击

您可以通过检查哪些因素实际点击

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

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


});