jQuery:在mouseup上隐藏一个元素,除非它有内容

时间:2015-04-19 12:02:13

标签: javascript jquery javascript-events

点击文档正文后,我想隐藏一些元素,并且我从SO中给出的答案中得到了这些代码。

$(document).mouseup(function (e){
    var container = $(".time-stamp, .full-name, .comment-box-wrapper .search-result");
    if (!container.is(e.target) // if the target of the click isn't the container...
        && container.has(e.target).length === 0) // nor a descendant of the container
    {
        container.hide();
    }
});

它工作正常,但我的页面一次显示10篇不同的文章,每篇文章都有文本框(comment-box),这些文本框包含在comment-box-wrapper中并附加到用户可以使用的每篇文章中 提交他们的意见。默认情况下,这些注释框设置为隐藏,直到用户点击注释按钮。问题是如果用户有 在评论框中输入一些文字并点击其他地方,comment-box设置为hidden,内容完全丢失。

如果.hide()已包含某些内容,如何取消comment-box

1 个答案:

答案 0 :(得分:1)

$(document).mouseup(function (e){
    var container = $(".time-stamp, .full-name, .comment-box-wrapper.not-active .search-result");
    if (!container.is(e.target) // if the target of the click isn't the container...
        && container.has(e.target).length === 0) // nor a descendant of the container
    {
        container.hide();
    }
});


$('.comment-box').on('change', function(){
    if(this.value!=""){
      $(this).parent().removeClass('not-active');
    }
})