我有一个状态更新系统,当用户更新状态时,人们可以发表评论。但问题是,当我点击回复时,评论框会自行打开和关闭,即使没有时间写任何东西。
有一个代码可以检查我们何时进行状态更新以及是否有评论(显然不会因为我们刚刚更新状态而只是隐藏评论框)。并且它以某种方式影响任何其他点击的评论框的打开。当我删除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);
}
});