我在函数之间传递全局变量值时遇到一些问题...无论我设置什么,我的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>
答案 0 :(得分:0)
在setindo
内,使用cssStr
的值代替,然后它将真正是全局的。目前passedvalue
位于setindo
答案 1 :(得分:0)
您看到的是cssStr
在文档首次加载时定义一次。当indo
的值发生变量时,变量的值不会改变 - 在创建字符串后它们根本不相关。如果要在调用该函数时使用indo
的值,则在该函数中构造cssStr
而不是在文档加载时。{/ p>