|
JScript/JavaScript的參考文檔甚少,也不是很詳細,很多語法也是一知半解,今天在寫事件函數(shù)時碰到了一個問題,現(xiàn)討論如下。 眾所周知,在處理HTML元素的事件時可以有多種方法寫代碼: 1、直接寫在HTML元素的on???屬性中,如: <INPUT TYPE="BUTTON" ONCLICK="alert(‘Clicked!‘)" VALUE="Click Me!"> <INPUT TYPE="BUTTON" ONCLICK="alerter()" VALUE="Click Me!">2、使用HTML元素對象的事件屬性,如: <INPUT ID="button1" TYPE="BUTTON" VALUE="Click Me!">![]() <SCRIPT LANGUAGE="JavaScript"> button1.onclick = alerter function alerter() ![]() ![]() { window.alert("You clicked the button!") } </SCRIPT> <INPUT ID="button1" TYPE="BUTTON" VALUE="Click Me!">![]() <SCRIPT FOR="button1" EVENT="onclick" LANGUAGE="JavaScript"> alert("You clicked the button!") </SCRIPT> ![]() <INPUT ID="button1" TYPE="BUTTON" VALUE="Click Me!">![]() <SCRIPT LANGUAGE="JavaScript"> button1.attachEvent("onclick", alerter) function alerter()![]() ![]() { window.alert("You clicked the button!") } </SCRIPT>常用的是第1、2種方法,但有些時候使用第2種方法還是比較合適,比如寫body.onload時,不一定方便把onLoad屬性寫在<body>元素內。特別是ASP.Net中編寫Web用戶控件(.ascx)時,它并沒有<body>元素。于是我寫了下面的腳本: window.onload=alert("Load!");原來按照方法2的寫法,事件函數(shù)是不能帶參數(shù)的!只能寫成window.onload=funcname;的形式,而如果想帶參數(shù)地調用一個或多個函數(shù),可以把這些語句寫到一個函數(shù)內。也可以寫成: ![]() window.onload=function() {alert("Load!");};看來想問題還是要謹慎,不能想當然。 |
|
|