您好,我创建了一个函数,用于检查输入字段的值并使用输入的数字作为变量。如何编写代码,以便可以在此函数之外使用变量?例如,将光线更改为等于val?
var val = $('input').val();
$('input').change(function(){
var val = $(this).val();
console.log(val);
init(val);
});
var w = c.width = window.innerWidth,
h = c.height = window.innerHeight,
ctx = c.getContext('2d'),
opts = {
rays: val,
答案 0 :(得分:1)
替换
var val = $(this).val();
通过
val = $(this).val();
否则,您将重新定义变量。
答案 1 :(得分:0)
我正试图了解问题所在。是否要像这样将val值传递给其他函数?
$('input').change(function(){
var val = $(this).val();
console.log(val);
init(val);
whatEver(val);
});
function whatEver(val){
var w = c.width = window.innerWidth,
h = c.height = window.innerHeight,
ctx = c.getContext('2d'),
opts = {
rays: val,
..
}
答案 2 :(得分:0)
我认为您在这里在范围可变方面苦苦挣扎。当在更改函数中使用关键字var
时,您将在本地范围内定义与全局范围内的变量同名的变量。这将覆盖全局变量,但仅覆盖局部函数的范围。
var val = '';
var init = function(value) {
var $test = $('.test');
$test.html(value);
}
$('input').change(function(){
val = $(this).val();
console.log(val);
init(val);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<br />
<div class="test"></div>
这是另一个没有增加jQuery复杂性的示例。在函数调用之前和之后的控制台日志均依赖于全局范围内的变量,而函数则依赖于其本地范围。
var test = 'test';
function doStuff() {
var test = 'different test';
console.log(test);
}
console.log(test);
doStuff();
console.log(test);
答案 3 :(得分:0)
您可以使用getter
将函数绑定到Object属性,并在每次查找该属性时使用该函数的返回值。
您还需要更改
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
tomcat.util.scan.StandardJarScanFilter.jarsToScan=myapp.jar,vaadin*.jar,flow*.jar,polymer*.jar,iron*.jar,shady*.jar
收件人
var val = $(this).val();//inside the change event handler
这样,您无需重新声明局部作用域的val变量,而是将值重新分配给全局val变量。
val = $(this).val();
var opts = {
get rays(){
return val;
}
}
var val = $('input').val();
$('input').change(function(){
val = $(this).val();
console.log('val:',val);
console.log('opts.rays:', opts.rays);
});
var opts = {
get rays(){
return val;
}
}