我有一个有趣的问题(至少对我而言)。
我有一个textarea,它有一个onfocus函数来扩展textarea并附加一个取消和提交按钮,这里是代码:
$('.box').focus(function() {
$(this).attr("status", "open");
$(this).attr("rows", 5);
$(this).parent().append("<button type='submit'>Submit</button><span class='cancel_comment' onclick='cancel_comment();'>Cancel</span>");
$('#comment_container').css("height", ($('#right_display').innerHeight() - $('#description_container').outerHeight() - 15));
});
取消按钮执行以下操作(将其恢复为原始外观和格式):
function cancel_comment(){
$(this).attr("status", "closed");
$('.box').attr("rows", 1);
$('.cancel_comment').remove();
$('#description_container button').remove();
}
这两个函数在第一次“点击”或焦点时都能完美运行,但我注意到两件事:
点击取消并运行cancel_comment()函数后,当我“再次点击”或再次关注textarea时,它会展开,告诉我第一个代码正在实现,但是...
它将取消和提交按钮boxas不可见(无量纲)元素添加到html(因此,如果我点击5次,我在html中有1个可见的按钮组和4个不可见的按钮组。)
知道为什么会这样吗?
感谢您的评论!
这是一个不会复制问题的jsfiddle,它实际上是完美的:http://jsfiddle.net/livvyjeffs/8HZLX/7/
我已经玩弄了jquery脚本代码的位置,现在我只是把它放在身体的末尾。 我将它保存在html文档中是为了方便,因为我真的不知道如何创建一个jQuery文档 - 这可能导致它吗?我知道jQuery对于订购很有帮助。
还有什么可能导致这种情况吗?我正在考虑并查看我的代码,将更新更新!