JQuery类添加/删除不起作用(要使用的未知委派)


JQuery class add/remove not working (unknown delegation to use)

我在php代码中运行Javascript/Jquery。它应该做的是,当有人进入页面时,会检查会话(如果有会话,则表示他们已经登录),如果存在会话,则通过更改类将登录按钮变成注销按钮。我读到你需要一个代表团,但我不确定在会议上应该做些什么。以下是会话检查/运行Jquery脚本:

 <?php
if (isset($_SESSION['mysession']) && $_SESSION['mysession'] == true) {
 echo  "<script type='text/javascript'> $('.btna').addClass('.btnh');
         $('.btna').removeClass('.btna');</script>";
}
        ?>
<!DOCTYPE html>
//html code

"btna"answers"btnf"类是按钮。"btna"是登录名,"btnf"是注销名。这是注销按钮的代码:

<!DOCTYPE html>
<head>
    <link href="css/style.css" rel="stylesheet">
</head>
<body>
    <button type="submit" name="submit" class="btnh" placeholder="Logout">
        Logout
    </button>
</body>

我还没有将我的按钮链接到注销表单。问题是,即使设置了会话,登录按钮也不会将类更改为注销按钮。那么简单地说,我将在JQuery中使用什么委派来检查会话,和/或我的JQuery代码是否正确(用分号、撇号等表示)感谢

编辑:不幸的是,到目前为止,这些答案似乎都没有成功——但非常感谢你们的帮助。然而,我认为问题在于我所要求的其他方面。它必须在注销按钮的HTML代码中,或者在CSS中的某个位置。我会继续寻找,但如果你们有什么建议,请发布。

编辑2:如果有什么不同的话,我的注销按钮在另一个页面上,但用CSS链接。下面是我制作的一些新的PHP代码,有人能理解它为什么不起作用吗(它根本没有出现)。这是在我主页的正文部分。

<?php
    if (isset($_SESSION['flinders']) && $_SESSION['flinders'] == true) {
        echo '<button type="submit" name="submit" class="btna" placeholder="Login">';
        echo                    'Login';
        echo                '</button>';
    }
        else{
            echo '<button type="submit" name="submit" class="btnh" placeholder="Logout">';
            echo                'Logout';
            echo            '</button>';
        }
?>

在JQuery语句中,不要使用句点(.)作为类。

before : $('.btna').addClass('.btnh');
after  : $('.btna').addClass('btnh');

祝你好运。

更改此项:

echo  "<script type='text/javascript'> $('.btna').addClass('.btnh');
         $('.btna').removeClass('.btna');</script>";

echo  "<script type='text/javascript'> $('.btna').addClass('btnh');
         $('.btna').removeClass('btna');</script>";

您不需要在类名之前添加点

<script type='text/javascript'> 
$('.btna').addClass('btnh');
$('.btna').removeClass('btna');
</script>

这应该行得通。如果没有,请使用此选项来确保DOM已准备就绪:

<script type='text/javascript'> 
    $(document).ready(function ()
    {
        $('.btna').addClass('btnh');
        $('.btna').removeClass('btna');
    }
</script>

尝试

 <script>
$(document).ready(function(){
var sessvalue='<?php echo $_SESSION['mysession']; ?>';
if(sessvalue == true) {
        $('.btna').addClass('btnh');
        $('.btna').removeClass('btna');
}
});
</script>

您根本不需要使用JavaScript。只需添加一个条件即可使用PHP设置类。

<?php
$btnClass = (isset($_SESSION['mysession']) && $_SESSION['mysession'] == true) 
          ? 'btnh' // value if above condition evaluates true
          : 'btna'; // value if above condition evaluates false
?>
<button type="submit" name="submit" class="<?php echo $btnClass; ?>">

也许在运行脚本时DOM还没有准备好。等待就绪事件后再运行:

$( function() {
    //your code here
} )