У меня немного проблемы с пропусканием глобального переменного значения между функциями ... мой cssStr
всегда содержит indo
со значением 1
независимо от того, что я установить значение с помощью setindo()
функция. Предупреждение об отладке внутри этой функции всегда корректно.не Передавая глобальную переменной между функциями
var indo = "1";
function setindo(passedvalue) {
indo = passedvalue;
alert("indo = " + indo);
}
$(window).load(function(){
$(document).ready(function(){
var cssStr = ".upload-preview" + indo + " img";
var preview = $(cssStr);
$(".file").change(function (event) { //file is the class id
var input = $(event.currentTarget);
var file = input[0].files[0];
var reader = new FileReader();
//var title1 = $('#file').attr('id');
alert("indo = " + indo);
alert(cssStr);
reader.onload = function(e){
image_base64 = e.target.result;
preview.attr("src", image_base64);
};
reader.readAsDataURL(file);
});
</script>
Вам не нужно передавать глобальные переменные между функциями. Они являются глобальными для всех функций, которые в них нуждаются. – Scott
Я не должен был формулировать это так, как я .. Поздно уже немного устал, ха-ха. Когда вызывается глобальная переменная 'indo' при установке переменной' cssStr', это значение всегда является значением по умолчанию. Однако, когда я использую оповещение об отладке после установки значения, оно корректно. – user3329793
Передача переменной типа номера в функцию будет передаваться по значению, а не передавать по ссылке, что означает, что значение будет присвоено локальной переменной, которая имеет только область видимости внутри функции. Изменение этого значения не изменит значение глобально. – kinakuta