第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么沒有觸發(fā)就自己運行了

  1. 為什么當頁面加載時,就彈出了提示框?

  2. btn.onclick=function(){alert('hello')}就行?而btn.onclick=btn()就不行

正在回答

5 回答

因為tcon();表示是調用了這個方法,直接執(zhí)行這個函數的代碼,如過你把()去掉 就好了!

1 回復 有任何疑惑可以回復我~
#1

hcl哦了 提問者

非常感謝!
2016-03-20 回復 有任何疑惑可以回復我~
#2

沒有情緒 回復 hcl哦了 提問者

不客氣,共同進步。
2016-03-20 回復 有任何疑惑可以回復我~
#3

進擊的小奇 回復 沒有情緒

為啥去掉括號就可以了?請問這是啥原因哦?
2016-06-22 回復 有任何疑惑可以回復我~
#4

zhongjing

去掉()點擊按鈕沒反應,怎么回事
2016-07-22 回復 有任何疑惑可以回復我~
查看1條回復

答案轉 ??

簡單點說,帶括號的是函數調用,直接執(zhí)行函數;不帶括號的是綁定事件,事件觸發(fā)再執(zhí)行。

復雜點說,帶括號的是把返回值賦值給事件,不帶括號的是把函數體所在地址位置賦值給事件。

舉個例子來說就是

<div id="a">函數括號那回事</div>
<input id="ip" type="button" value="點擊變色">
<script type="text/javascript">
? ?function cc(){
? ? ? ?var a=document.getElementById("a");
? ? ? ?a.style.color="red";
? ?}
? ?function change(){
? ? ? ?var ip=document.getElementById("ip");
? ? ? ?//ip.onclick=cc; ? //正常綁定事件,onclick觸發(fā)執(zhí)行
? ? ? ?ip.onclick=cc(); ? //調用cc,直接執(zhí)行
? ?}
? ?change(); ?//調用change,直接執(zhí)行
</script>

上面代碼扔body里,2種挨個感受一下就知道了。

然后會有一個新問題,假如函數需要傳參怎么辦,這時候需要ip.onclick=function(){cc(obj);},理解方式一樣,綁定一個函數,函數在觸發(fā)onclick時執(zhí)行,函數內容是執(zhí)行cc。

如有錯誤,望指正


0 回復 有任何疑惑可以回復我~

您用的是什么軟件,做前端.

0 回復 有任何疑惑可以回復我~

?btn.onclick=tcon()因為這一句是直接執(zhí)行了,所以你沒有觸發(fā)就自己執(zhí)行了


0 回復 有任何疑惑可以回復我~

btn.onclick=tcon(),你這句話表示調用tcon(),并把值賦給btn.onclick,肯定一加載就運行函數并賦值,你要點擊再運行函數,要這樣寫<input type="button" ?value="點點我" id="btn" onclick="tcon()">?

0 回復 有任何疑惑可以回復我~
#1

hcl哦了 提問者

謝謝,但是你沒明白,我想用這種方法實現功能,不在html中操作
2016-03-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么沒有觸發(fā)就自己運行了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號