如果没有评论不起作用,jquery隐藏或显示评论

时间:2013-01-14 15:38:16

标签: jquery

我有一个状态更新系统,当用户更新状态时,人们可以发表评论。但问题是,当我点击回复时,评论框会自行打开和关闭,即使没有时间写任何东西。

有一个代码可以检查我们何时进行状态更新以及是否有评论(显然不会因为我们刚刚更新状态而只是隐藏评论框)。并且它以某种方式影响任何其他点击的评论框的打开。当我删除var t = setTimeout("BpActivityReply()", 325);这一行时,评论框打开正常,但是当新的状态更新时,它会打开,这不应该发生。任何人都可以建议我错在哪里

 if (typeof jq == "function") {
jq("#content").ajaxComplete(function (evt, request, settings) {

    var t = setTimeout("BpActivityReply()", 325);
});
jq("div.activity").click(function (event) {
    var target = jq(event.target);
    if (target.hasClass("acomment-reply") || target.parent().hasClass("acomment-reply")) {
        BpActivityReply();
        if (target.parent().hasClass("acomment-reply")) {
            target = target.parent();
        }
        var id = target.attr("id");
        ids = id.split("-");
        var form = jq("#ac-form-" + ids[2]);
        form.parents(".activity-replies").slideDown(200);
        return false;
    }
});
jq(document).keydown(function (e) {
    e = e || window.event;
    if (e.target) {
        element = e.target;
    } else {
        if (e.srcElement) {
            element = e.srcElement;
        }
    }
    if (element.nodeType == 3) {
        element = element.parentNode;
    }
    if (e.ctrlKey == true || e.altKey == true || e.metaKey == true) {
        return;
    }
    var keyCode = (e.keyCode) ? e.keyCode : e.which;
    if (keyCode == 27) {
        if (element.tagName == "TEXTAREA") {
            if (jq(element).hasClass("ac-input")) {
                formContainer = jq(element).parent().parent().parents(".activity-replies");
            }
            if (formContainer.find("ul").length <= 0) {
                formContainer.slideUp(200);
            }
        }
    }
});
BpActivityReply();
 }





function BpActivityReply() {
    jQuery(".activity-replies").each(function () {
        hasComments = jQuery(this).find("ul").first().children("li:visible");
        if (hasComments.length <= 0) {
            jQuery(this).css("display", "none");
        } else {
            jQuery(this).slideDown(200);
        }
    }); 

0 个答案:

没有答案