如何设置变量以具有默认值,然后通过单击在任何函数外部设置的变量(包括main)来更改该值?
我在PHP中这样做的方法是$(_ isset ..等等,所以试图找出是否有办法在jQuery中执行此操作?
我的问题尤其是如果没有点击提交按钮,则将var n设置为等于45。为了测试我尝试在点击时将其更改为90只是为了查看我是否可以执行此操作,并且它显然不起作用,因为var n正在初始化之后。
$(document).ready(function() {
$('#submit').click(function()
{
var n = 90.0;
});
});
// RotatedTriangle.js (c) 2012 matsuda
// Vertex shader program
var VSHADER_SOURCE =
// x' = x cosβ - y sinβ
// y' = x sinβ + y cosβ Equation 3.3
// z' = z
'attribute vec4 a_Position;\n' +
'uniform float u_CosB, u_SinB;\n' +
'void main() {\n' +
' gl_Position.x = a_Position.x * u_CosB - a_Position.y * u_SinB;\n' +
' gl_Position.y = a_Position.x * u_SinB + a_Position.y * u_CosB;\n' +
' gl_Position.z = a_Position.z;\n' +
' gl_Position.w = 1.0;\n' +
'}\n';
// Fragment shader program
var FSHADER_SOURCE =
'void main() {\n' +
' gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n' +
'}\n';
var n = 45.0;
// The rotation angle
var ANGLE = n;
function main() { ... (rest of code not important)
没有? 那么解决这个问题的最佳方法是什么?
这是一个实时的例子,也可以看到我在说什么: jdmdev.net/RotatedTriangle.html
答案 0 :(得分:0)
你很亲密。您需要设置n
的值,而不是在函数范围中重新声明一个值:
$(document).ready(function() {
$('#submit').click(function()
{
n = 90.0; // n should already exist
ANGLE = n; // update again.
});
});
根据您的代码,您可能还需要更新ANGLE变量。
提交(在大多数情况下)将导致页面上下文刷新。要保持该值,可以使用localstorage,并在页面加载时重新拉下它。