gpt4 book ai didi

javascript - 函数变量未传递给全局变量

转载 作者:行者123 更新时间:2023-12-02 17:02:31 26 4
gpt4 key购买 nike

大家好,我有两页 php 文件和一个外部 javascript 文件。我想将选定的单选按钮的值传递给 jquery 全局变量,以便我可以查看与选定的单选按钮的值具有相同 id 的 div 元素。每当我单击 PLAY! 按钮时,我在下一页上看不到我的 div 元素。这是我的代码:

player-choose.php 脚本:

<head>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/mycustom.js"></script>
</head>

<body>
<div id="player-list">
<input type="radio" name="player" value="fighter" id="fighter-radio"><label for="fighter-radio"><img src="images/heroes/fighter-01.png" width="74" height="70"></label>
<input type="radio" name="player" value="pakhi" id="pakhi-radio"><label for="pakhi-radio"><img src="images/heroes/pakhi.png" width="95" height="70"></label>
</div>
<button id="play">PLAY!</button>
</body>

mycustom.js 脚本:

var playerID;

function start(){
spawnhero();
}

$(function(){
$("#play").click(function(){
window.location.href = 'index.php';
playerID = $('input[name=player]:checked').val();

});
})

function spawnhero () {
$("#content").append($("<div>").attr('id', playerID));
}

index.php脚本:

<head>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/mycustom.js"></script>
</head>

<body onload="start()">
<div id="content">
<div id="galaxy"></div>
</div>
</body>

这是一个非常简单的事情,但我不知道为什么它不起作用。我在这里做错了什么吗?如果有人找到解决方案,请赐教。 Tnx!

最佳答案

如果您要移动到新页面 (window.location = ...),您将需要一些稍微复杂的方式在这些页面之间传输信息 - 大多数情况下,HTTP/HTML 是“无状态的” ,但 cookie 等技术除外。 JavaScript 变量被完全清除 - 它实际上是在每个新页面上重新解析整个 JQuery 库(并不是说这是要避免的事情)

对于视频游戏,只要玩家信息不包括服务器组件(我可能是错的),我的建议就是将玩家信息保存在 sessionStorage 中。 .

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

但是,如果这是一款基于服务器的游戏,其中您选择的玩家的重要性超出了本地计算机的范围,那么您可能希望通过以不同方式构建页面请求来将玩家 ID 发送到服务器:

window.location.href = 'index.php?playerId=' + playerId;

或者通过POST将数据作为表格;通过将提交按钮构造为 <input type="submit"> 最容易完成,并包装您所有的 <input> <form method="POST"> 中的元素对象。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

从那里,您的服务器软件可以根据给定的信息以不同的方式写出第二页的响应 - 您甚至可以自定义 <script> 中编写的 JavaScript 内容。使用 PHP 指令标记。

var playerId = "<?php print($_POST['playerId']); ?>";

希望这可以帮助您入门。

关于javascript - 函数变量未传递给全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25570055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com