我有这个简单的jQuery代码:的jQuery,在textarea的一个HTML功能,光标消失
$('.answerComment').click(function() {
$(this).children('.answerForm').html('<textarea></textarea>');
});
,但只要我点击textarea的光标消失,如果我想写点东西,我需要保持点击鼠标左键
任何想法为什么?
我有这个简单的jQuery代码:的jQuery,在textarea的一个HTML功能,光标消失
$('.answerComment').click(function() {
$(this).children('.answerForm').html('<textarea></textarea>');
});
,但只要我点击textarea的光标消失,如果我想写点东西,我需要保持点击鼠标左键
任何想法为什么?
试试这个:
$('.answerComment').click(function(e) {
if (e.target.nodeName == 'TEXTAREA') return;
$(this).children('.answerForm').html('<textarea></textarea>');
});
但你选择不显示你的textarea的最佳方式。
它的工作完美,非常感谢! – 2013-02-17 13:21:34
不客气。不过,我建议你在'.answerComment'容器外面显示'textarea'。 – dfsq 2013-02-17 13:22:55
好的,我会适用你的建议,所以再次感谢:) – 2013-02-17 13:23:55
这是因为点击()也称为子元素上点击
您可以通过检查哪些因素实际点击
$('.answerComment').click(function(e) {
if ($(e.target).hasClass("answerComment")){
$(this).children('.answerForm').html('<textarea></textarea>');
}
});
我想这是因为新的textarea是避免这种情况的时候'.answerComment'的一个孩子并点击它将触发这个相同的功能(用一个新的替换textarea)。 – JJJ 2013-02-17 13:15:24
@Juhana谢谢你的回答,但是没有老的textarea,我只想要一个texteare出现在.answerForm当我点击.answComment – 2013-02-17 13:18:43
你不理解评论。当你点击'.answerComment'时,它会创建textarea;当你点击textarea开始输入时,触发相同的事件,textarea被替换为另一个。 – JJJ 2013-02-17 13:20:01