src="3.jpg"/></a>
</form>
</body>
</html>
---------------------------------------------------------------------------------------------------
javascript編程起步(第六課)
mouseDown事件和mouseUp事件
?
大家知道,mouseDown事件和mouseUp事件的組合就是click事件,但是如果在鏈接上按下鼠標(biāo),并移到鏈接之外在放開鼠標(biāo),那么就只有mouseD
own事件了。這兩個(gè)事件可以增加圖標(biāo)按鈕的圖像效果,
? 至于mouseDown和mouseUp的屬性,它們是伴隨著Click事件發(fā)生的,這和keyPress事件是keyDown事件和keyUp事件組合而成的機(jī)制是一樣的
,這3個(gè)鼠標(biāo)事件也有modifier屬性。
? (注意:如果在onClick事件處理中使用return語句,它可以接收任何數(shù)值。只要這個(gè)值不是False,瀏覽器就可以完成提交。但如果瀏覽
器得到的是False值,表單提交操作就會(huì)被取消。)
Click事件和dbClick事件
? onClick是單擊事件,onDblClick是雙擊事件,而實(shí)際上很難分清連續(xù)的單擊和雙擊。它們會(huì)互相干擾。而且在ie和其他瀏覽器的情況還有
不同。有的瀏覽器是雙擊事件的每一次單擊都會(huì)觸發(fā)單擊事件,而在ie中,只有雙擊事件的第一次單擊會(huì)觸發(fā)單擊事件。不管怎么樣,單擊事
件都不會(huì)自動(dòng)的取消或被忽略。因此,如果想使用單擊和雙擊一個(gè)鏈接時(shí)觸發(fā)兩個(gè)完全不同的過程,則必須通過編程來延遲單擊的動(dòng)作知道雙
擊。
例:
<script>
var timer=null;
document.onclick=new Function("timer=setTimeout(click,500)")
document.ondblclick=new Function("clearTimeout(timer);dblclick()")
function click(){
alert("click")
}
function dblclick(){
alert("dblclick")
}
</script>
解釋:
new Function("timer=setTimeout(click,500)")
新建一個(gè)函數(shù),內(nèi)容為
timer=setTimeout(click,500)
setTimeout(函數(shù)或語句,時(shí)間以毫秒為單位)
用于設(shè)置某函數(shù)或語句在某時(shí)間后執(zhí)行,……
clearTimeout(timer);
清除設(shè)置,
? 在高版本的瀏覽器中,鏈接的這兩種事件處理程序都監(jiān)視那些使得腳本阻止鏈接的特殊行為。
? 例如:在想要的導(dǎo)航到另一個(gè)頁面之前進(jìn)行某些數(shù)據(jù)項(xiàng)的確認(rèn),如果某些域填得不正確,可以提醒并終止鏈接。要實(shí)現(xiàn)這種確認(rèn),必須在
事件處理程序得最后一條語句或者事件處理程序自身返回True或False。如果返回False就終止鏈接。
------------------------------------------------------
javascript編程起步(第七課)
過年到現(xiàn)在一直都比較忙,辜負(fù)大家了.
今天就學(xué)習(xí)函數(shù)吧,雖然語句還沒有說完.
函數(shù)是javascript語言的一個(gè)很重要的內(nèi)容,但也很復(fù)雜.
下面來看看javascript函數(shù).
函數(shù)是有function加函數(shù)名和一對帶有參數(shù)括號(hào),以及大括號(hào)組成的,其中大括號(hào)里是
主體javascript語句.
例:
function hanshuname(js) //hanshuname是函數(shù)名.
{
document.write(js,"<br>"); //是函數(shù)的主體語句.
}
函數(shù)可以嵌套,如下:
function qiantao(a,b){
function lqiantao(x){return x*x;}
return Math.sqrt(lqiantao(a)+lqiantao(b));
}
函數(shù)還可以作為數(shù)據(jù)來應(yīng)用,因此可以象處理其他數(shù)據(jù)那樣來處理函數(shù),如:賦值,存儲(chǔ),傳遞等.
例:
function zhi(x){return x*x;}
實(shí)際上,函數(shù)名沒有什么意義,不過是保存函數(shù)的變量名而已.
a=zhi(6);//a存放的是數(shù)字36;
b=zhi;//現(xiàn)在b和zhi引用同一個(gè)函數(shù).
c=b(5);//c存放的是數(shù)字25.
在一個(gè)函數(shù)體內(nèi),標(biāo)識(shí)符arguments總是具有特殊含義,它是調(diào)用對象的一個(gè)特殊屬性,用來引用實(shí)際參數(shù)對象.這個(gè)實(shí)際參數(shù)對象具有大量有用的
屬性.除此之外,它還兼有數(shù)組的角色.
盡管定義javascript函數(shù)時(shí)都有固定的參數(shù),但調(diào)用這個(gè)函數(shù)時(shí),傳遞給它的參數(shù)數(shù)目卻可以是任意的,數(shù)組arguments[]允許完全存取那些實(shí)
際參數(shù)值.另外,arguments有一個(gè)length屬性,看如下例子:
function zhi(x,y,z)
{
if(arguments.length !=3){
alert("function zhi called with"+arguments.length+"arguments,but it expects 3 arguments.");
return null;
}
}
數(shù)組arguments[]還為javascript函數(shù)開發(fā)了一項(xiàng)重要的可能性,既可以將函數(shù)編寫為能夠接受任意數(shù)目的實(shí)際參數(shù).
function zhi()
{
var m=Number.NEGATIVE_INFINITY;
//遍歷所有參數(shù)
//檢索并記憶最大的一個(gè).
for(var i=0;i<arguments.length;i++)
if(arguments>m)m=arguments;
//返回最大的參數(shù)值.
return m;
}
var lazgest=zhi(1,10,100,2,3,1000,4,5,10000,6);
也可以使用arguments[]數(shù)組來編寫一個(gè)函數(shù).
調(diào)用js函數(shù)
<a href=”#” onClick=”functionName()”>Link text</a>
<a href=”javascript:functionName()”>Link text</a>
今天先說到這兒吧,下節(jié)繼續(xù)說函數(shù).
?
posted on 2006-06-13 16:17
保爾任 閱讀(932)
評(píng)論(2) 編輯 收藏