更改var onclick但如果未设置则具有默认值

时间:2014-09-11 20:21:13

标签: javascript jquery

如何设置变量以具有默认值,然后通过单击在任何函数外部设置的变量(包括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

1 个答案:

答案 0 :(得分:0)

你很亲密。您需要设置n的值,而不是在函数范围中重新声明一个值:

$(document).ready(function() {
  $('#submit').click(function()
  {
      n = 90.0; // n should already exist
      ANGLE = n; // update again.
  });
});

根据您的代码,您可能还需要更新ANGLE变量。

提交(在大多数情况下)将导致页面上下文刷新。要保持该值,可以使用localstorage,并在页面加载时重新拉下它。