javascript中的全局变量不起作用?

时间:2016-02-25 17:56:54

标签: javascript web global-variables frontend function-call

我在JavaScript中有两个函数。一个是change_BASE_ID(),另一个是Display_img(a,b)

在鼠标点击时调用

change_BASE_ID()并在内部调用Display_img()。在鼠标悬停时,调用Display_img()

所以Display_img()以两种方式使用。 base_id_mitali中有一个change_BASE_ID()变量,我希望它是全局变量。因此,即使在鼠标悬停时独立调用Display_img()函数,它也应该使用该变量的值。

如果从未点击onclick函数,则base_id_mitali中的值应为01,否则如果单击它,则应为先前设置的值。



var base_id_mitali = "";

function change_BASE_ID(base_ID, cursor_ID) { // THIS IS WHEN MOUSE IS CLICKED
  //var curr_base_id = 'ch01ch01.png';
  var start_name = "ch";
  base_id_mitali = "01";
  var bsid = document.getElementById('image').src;
  //var bsidlen=bsid.charAt(bsid.length-6);
  var bid1 = bsid.charAt(bsid.length - 6);
  var bid2 = bsid.charAt(bsid.length - 5);
  document.getElementById("mitali").innerHTML = "trying to get base id ".concat(bid1).concat(bid2);
  base_id_mitali = concat(bid1).concat(bid2);

  var a = base_ID;
  var b = cursor_ID;

  var temp_res1 = start_name.concat(base_id_mitali);

  var temp_res2 = temp_res1.concat("ch");

  var temp_res3 = temp_res2.concat(b);

  var final = temp_res3.concat(".png");


  curr_base_id = final;

  document.getElementById('image').src = final;
  Display_img(base_ID, cursor_ID);

  document.getElementById("demo").innerHTML = "clicked on ".concat(final);
  //setbaseid(base_id_mitali);

}

function Display_img(a, b) {

  var start_name = "ch";
  //document.getElementById("globalvar").innerHTML = "trying see global variable value ".concat(base_id_mitali);
  var temp_res1 = start_name.concat(a); //want to use the global variable instead of a

  var temp_res2 = temp_res1.concat("ch");

  var temp_res3 = temp_res2.concat(b);

  var final = temp_res3.concat(".png");

  document.getElementById("demo").innerHTML = final;


  document.getElementById('image').src = final;
}




1 个答案:

答案 0 :(得分:0)

我在代码中看不到变量base_id_mitali的任何初始化。在您的html代码之外,使用以下代码初始化加载变量:

<script>
var base_id_mitali= "";
</script.

现在您可以访问此全局变量。