2016-02-25 2 views
0

У меня есть две функции в JavaScript. Один из них - change_BASE_ID(), а другой - Display_img(a,b).Глобальные переменные в javascript не работают?

change_BASE_ID() вызывается на мышке и внутренне звонит Display_img(). На mouseover вызывается Display_img().

So 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; 
 
}

ответ

0

Я не вижу никакой инициализации для переменной base_id_mitali в коде. Вне вашего html-кода инициализируйте переменную при загрузке, используя следующий код:

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

Теперь вы можете получить доступ к этой глобальной переменной.

+0

не работает. После этого нажмите. Он должен принять значение переменной, которая установлена ​​в функции change_BASE_ID. Он не принимает эту ценность. – Karen

+0

, когда функция onclick не нажимается даже после того, как она должна принять значение 01, если он щелкнул, он должен принять значение, установленное в функции change_BASE_ID (base_ID, cursor_ID) – Karen

+0

Можете ли вы уточнить, какое значение отображается в первой функции. –