gpt4 book ai didi

javascript - Javascript 中的全局变量和局部变量

转载 作者:行者123 更新时间:2023-11-30 18:41:53 25 4
gpt4 key购买 nike

我有一个变量和两个函数。两者都使用该变量。第一个函数每次使用它时都会(全局)更改变量值。这就是我想要的,但它不适合我。

x = 1;

function f1()
{
x = x + 1;
// use x
}

function f2()
{
// use x
}

我读过其他线程,但 x 始终为 1,这非常令人沮丧:|

添加:实际代码

<script type="text/javascript">

function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}

function guid() {
return (S4() + S4() + ";" + S4() + ";" + S4() + ";" + S4() + ";" + S4() + S4() + S4());
}

P = '';

function Save() {
P = guid();
$('#btnBrowse').uploadifyUpload();
}

$(document).ready(function () {


$('#txtText').elastic();

$('#btnBrowse').uploadify({
'uploader': '../uploadify.swf',
'script': '../uploadify.ashx',
'cancelImg': '/uploadify/cancel.png',
'folder': '../images/Albums/',
'multi': true,
'fileDesc': 'Web Image Files (.JPG, .GIF, .PNG)',
'fileExt': '*.jpg;*.gif;*.png',
'scriptData': { 'Album_ID': P },
'buttonText': 'Upload Images'
});

});

</script>

所以变量是 P 。它由 jquery 函数 (uploadify) 使用。每次我执行保存函数我希望我得到变量 P 的新值。但总是一样的??

最佳答案

问题是执行代码的时间。 uplodify 选项在页面加载时设置(其中包括 P 在页面加载时传递)并且因为 P 是一个字符串,改变 P 之后(通过 save())将不会更改您传递的值。

您可以通过将对对象的引用作为选项而不是字符串传递来解决此问题 编辑:无效。

该插件提供了一个 uploadifySettings [docs]方法来更改 uploadify 实例的设置。使用它来更新 scriptData 设置:

function Save() {
$('#btnBrowse').uploadifySettings('scriptData', {'Album_ID' : guid()}, true);
$('#btnBrowse').uploadifyUpload();
}

关于javascript - Javascript 中的全局变量和局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628209/

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