见这两个例子
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_alignRight="@+id/editText1"
android:layout_below="@+id/progressBar1"
android:layout_marginTop="24dp"
android:text="Submit"
android:onClick="showZiare"/>
其他例子
android:onClick="****"
在示例1中,当我们加载页面时,<head>
<script language="JavaScript" type="text/javascript">
var mTimer=setTimeout(foo();1000);
</script>
</head>
不会运行
在示例2中,当我们点击按钮触发<head>
<script language="JavaScript" type="text/javascript">
var mTimer;
function test(){ mTimer=setTimeout(foo();1000);}
</script>
</head>
时,此时mTimer=setTimeout(foo();1000);
开始运行。
加载页面时,为什么test();
在函数外部不会被触发?
答案 0 :(得分:1)
setTimeout
绝对可以在函数之外使用。
除非foo
是一个返回另一个函数的函数,否则很可能是
// do this
var mTimer = setTimeout(foo, 1000);
而不是
// don't do this
var mTimer = setTimeout(foo(), 1000);
区别在于第一个代码,对foo
函数的引用传递给setTimeout
,而在第二个代码中,{{1>}的返回值传递给foo()
运行此代码段以查看其是否有效
setTimeout