【问题标题】:If css() == X, else, not working, forms not working如果 css() == X,否则不工作,表单不工作
【发布时间】:2012-03-04 07:37:15
【问题描述】:

我正在为我的社交网络聊天。我正在使用以下代码,它似乎在显示聊天时有效,但在隐藏时无效。您可以在右下角的http://live-pin.com(“system”栏)上看到它。

我做错了什么?

function toggleChat(obj){
    current_margin = $(obj).css('marginBottom');
    if (current_margin == 0){
            $(obj).animate({marginBottom : "-270px"}).removeClass("active_box").addClass("hidden_box");
    }else{
        $(obj).animate({marginBottom : "0"}).removeClass("hidden_box").addClass("active_box");
    }
}

另外,我遇​​到了麻烦,因为它显示/隐藏了两个聊天,我不希望这种情况发生,而且“新消息”表单不起作用,只是在创建的最后一个聊天中。作为附加细节,这些框是使用从 JSON 检索的数据动态创建的,因此我不能使用 click() 函数或类似函数。

<?php echo "谢谢! (:"; ?>

【问题讨论】:

  • 你是如何调用你的函数的?你能把那部分贴出来吗?

标签: javascript jquery ajax json dynamic


【解决方案1】:

即使您可以 marginBottom 设置为 0,它内部也会是 0px,因此 current_margin 将是 0px,而不是 0。 但是您可以尝试先解析该值:

function toggleChat(obj) {
  var currentMargin = parseInt($(obj).css('margin-bottom'));
  if (currentMargin === 0) {
    $(obj).animate({ marginBottom: "-270px" })
          .removeClass("active_box")
          .addClass("hidden_box");
  } else {
    $(obj).animate({marginBottom : "0px"})
          .removeClass("hidden_box")
          .addClass("active_box");
  }
}

【讨论】:

  • 它帮助了我,但没有解决它。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多