当onclick事件处理机制启动时,为什么不调用第二个函数?
Why doesn't the second function gets called when onclick event handling mechanism is initiated?
考虑下面的代码片段,
<input type="button" value="Press Me!" id="my" onclick="return executeX(); executeY()">
<script>
function executeX() {
alert("in X");
return true;
}
function executeY() {
alert("in Y");
}
</script>
尽管true是从第一个函数返回,为什么控件不在onclick中转到executeY() ?
使用&&
来组合它们:
onclick="return executeX() && executeY();"
&&
的短路保证了executeY()
只有在executeX()
返回真值时才会被调用。
因为在onclick处理程序中,您返回的是第一个函数的结果。它就像一个函数:一旦返回,就不会执行其他行。
这是因为您使用return
开始内联javascript。因此,第一个函数一执行,它的结果就返回了。
要么删除返回值,要么在第一个函数的末尾调用第二个函数。
function executeX(){
alert("in X");
executeY();
return true;
}
function executeY(){
alert("in Y");
}
在调用第二个函数(executeX()
)之前返回一个值(executeX()
)。
function example() {
//Do Something
return /*Return Something*/;
//this Code will not be executed
}
可能的解决方案:
<input type="button" value="Press Me!" id="my" onclick="function(){ executeY(); return executeX(); }">
相关文章:
- 为什么不调用此函数
- 为什么不是't调用我的函数
- JS调用方法,为什么不直接使用括号
- 为什么不使用 AngularJs 因子从我的 REST API 调用数据
- 为什么不调用此函数
- 为什么通过 $.ajax() 方法调用时不显示 jQuery colorbox 弹出窗口
- 为什么不执行嵌套 setTimeout 中的 removeAttribute 调用
- 为什么不调用该函数
- HTML5 视频的 canplay/canplaythrough 事件不会在 Firefox 上调用.为什么
- 为什么不是't正在调用AngularJS表单处理程序方法
- 为什么这个JS函数会'当它通过selenium.getEval()调用时不起作用
- 为什么不是'这个onclick JavaScript调用不起作用
- 为什么不;t函数(){}()调用自身
- 为什么不'第二次和第三次调用后,t ajax load()工作
- 为什么不't多个$.getJSON调用工作正常
- 为什么不能递归调用jquery中的函数
- 为什么闭包函数中的 javascript 变量在多次调用时不会重置为默认值
- 为什么不't这个对api的调用适用于3个字母的单词
- 为什么不't运行此promise调用之后的代码
- 为什么不是't骨干网调用一个简单的路由[及其相应的功能]