Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于切换类的jQuery函数存在两次,但只工作一次_Php_Jquery_Css_Toggle - Fatal编程技术网

Php 用于切换类的jQuery函数存在两次,但只工作一次

Php 用于切换类的jQuery函数存在两次,但只工作一次,php,jquery,css,toggle,Php,Jquery,Css,Toggle,我有一个index.php页面,无论您激活会话还是注销,其内容都会发生变化 当用户登录时,单击链接“showhide”应显示类“users”。 当用户注销时,链接“showhide”被隐藏,而链接“showhide2”是可见的,按下该链接时应显示类“users2” 我在网上找到了一个jQuery代码片段,它正好可以做到这一点,并且可以很好地用于链接“showhide” 不幸的是,它不适用于链接“showhide2”-该类始终可见 这是我的密码: <div id="content" styl

我有一个index.php页面,无论您激活会话还是注销,其内容都会发生变化

当用户登录时,单击链接“showhide”应显示类“users”。 当用户注销时,链接“showhide”被隐藏,而链接“showhide2”是可见的,按下该链接时应显示类“users2”

我在网上找到了一个jQuery代码片段,它正好可以做到这一点,并且可以很好地用于链接“showhide” 不幸的是,它不适用于链接“showhide2”-该类始终可见

这是我的密码:

<div id="content" style="margin-top:10px;height:100%;">
      <?php
      /*echo "Der Nutzername ist ".$_SESSION['user'];
      echo "<br>Die Session lautet ".$_SESSION['sessionname'];
      echo "<br>".session_id();*/


      $sArray = explode(".",$_SESSION['sessionname']);
        $session1 = $sArray[0];
        $session2 = $sArray[1];
      $sessionausblenden = $_SESSION['sessionname'];
      if (!isset($sessionausblenden)){
          echo "<style type='text/css'>
        #showhide{ 
            visibility:hidden !important;
        }

        .users{
        visibility:hidden !important;
        }

        #logout {
        visibility:hidden !important;
        }
        </style>";


      }
      elseif (isset($sessionausblenden)){
          echo "<style type='text/css'>
        #showhide2{ 
            visibility:hidden !important;
        }

        .users2{
        visibility:hidden !important;
        }
        </style>";

      }


      ?>
    <a id="showhide" href="#" style="background:#<?php echo $session2?>;">+</a>
    <a id="showhide2" href="#" style="background:#<?php echo $session2?>;">?</a>
    <a id="logout" onclick="return confirm('Are you sure?')" href="logout.php">-</a>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.users').hide();

            $('a#showhide').click(function () {
                $('.users').toggle(400);
            });
        });
    </script>
 <script type="text/javascript">
        $(document).ready(function () {
            $('.users2').hide();

            $('a#showhide2').click(function () {
                $('.users2').toggle(400);
            });
        });
    </script>

   <center><h1>Group Chat In PHP</h1></center>
   <div class="chat">

    <div class="users" style="background-color:#<?php echo $session2?>;">
     <?php include("users.php");?>
    </div>
        <div class="users2" style="background-color:#<?php echo $session2?>;">
     <?php include("users.php");?>
    </div>
    <div class="chatbox">
     <?php
     if(isset($_SESSION['user'])){
      include("chatbox.php");
     }else{
      $display_case=true;
      include("login.php");
     }
     ?>

    </div>
   </div>
  </div>


似乎一个事件并不一定会发生。如果您在文档级别进行侦听,并让它冒泡为#showhide作为目标,那么它可能会起作用。动态加载的元素可能会发生这种情况

改变

        $(document).ready(function () {
            $('.users2').hide();

            $('a#showhide2').click(function () {
                $('.users2').toggle(400);
            });
        });

最重要的是,请解决此错误:

$(.msgs”).animate({scrollTop:$(.msgs”)[0].scrollHeight})$(“.msgs”)[0]
第2行的code>未定义

没有与
$('.msgs')
匹配的元素。将其包装为以下内容:

if($('.msgs').length) {
    $(".msgs").animate({scrollTop:$(".msgs")[0].scrollHeight});
}

这可能是事件未绑定的原因。

如果您试图通过使用css对注销用户隐藏内容,请确保这些内容是您不介意他们看到的,并且他们努力工作,尝试查看。如果你知道怎么做的话,可以使用检查器轻松地取消隐藏隐藏的内容。是的,他们什么时候能够看到内容并不重要-除非他们登录,否则类基本上是空的(然后从数据库中提取内容)。当我登录时,没有showhide链接?是左上角带加号的彩色按钮。。。单击它可以切换同一房间中的其他用户列表,以及您选择的开始/目的地。它没有绑定事件。应该很容易解决。等一下…@weheri你的密码有错误。打开控制台并检查日志!我在回答的最后强调了错误。哇,成功了!不幸的是,需要“scrollHeight”,它会自动向下滚动到最新消息。我现在删除了它,即使出现新消息,它也会保留在顶部。但是,当它显然在行动中起作用时,它怎么能打印错误?@weheri我不明白你说的“它怎么能打印错误”是什么意思?顺便说一句,做一个好公民,如果它对你有效,请勾选答案。如果你认为我帮了大忙,你甚至可以给我的答案投赞成票。好吧,算了。它总是试图找到“scrollHeight”,即使用户没有登录(因此聊天盒甚至还不存在)解决方案:脚本现在只在用户登录时加载in@weheri您可以使用添加到问题中的
if
检查来确保元素也存在。
if($('.msgs').length) {
    $(".msgs").animate({scrollTop:$(".msgs")[0].scrollHeight});
}