请问我该如何获得方法内部的sum值来在其他方法中使用?我在外面定义了sum,可是输完数据移开鼠标焦点后,输出到控制台的是 undfined,就算我把sum赋值为0,输出的也是0,根本获得不到方法内部的sum,请各位帮帮忙,感谢!(不可用jQuery)
因为onblur事件是异步触发的,你要等待onblur事件触发之后,才能再在其他方法中获取sum的值。
如果在onblur事件触发之前,sum还没有重新赋值,就在其他方法中获取sum的值,自然获取不到sum最新的值。
比如这个例子。
<input type="text" id="textid" value="" />
<script type="text/javascript">
var sum;
var textobj = document.getElementById("textid");
textobj.onblur = function () {
sum = this.value;
console.log("onblur事件触发了");
abc();
}
function abc() {
console.log("开始获取sum的值");
console.log(sum);
}
</script>
是先触发onblur事件输出"onblur事件触发了"之后。再执行abc();输出"开始获取sum的值"才可以。
如果你的程序是先执行abc();输出"开始获取sum的值",之后再触发onblur事件输出"onblur事件触发了"就不对了。
要像这个例子在onblur事件中调用abc()
或者用 setTimeout延迟一下等待onblur事件触发之后再获取sum的值
如有帮助,望采纳!谢谢!