十一、鼠标事件
主要内容就是基于鼠标的事件,有如下几种:
1.mouseover(鼠标移至)
2.mouseout(鼠标移出)
3.mousemove(鼠标移动)
4.mousedown(鼠标按下)
5.mouseup(鼠标弹起)
6.click(单击)
7.dblclick(双击)
例子:
<html>
<head>
<title>test</title>
<script language=”javascript”>
function text_onmouseover(){
mytext.style.fontSize=”30pt”;
mytext.style.color=”red”;
mytext.style.fontStyle=”italic”;
}
function text_onmouseout(){
mytext.style.fontSize=”20pt”;
mytext.style.color=”blue”;
mytext.style.fontStyle=”normal”;
}
</script>
</head>
<body>
<p id=mytext onmouseover=”text_onmouseover()” onmouseout=”text_onmouseout()”>http://www.javascript.com.cn</p>
<p>看看字体样式有什么变化</p>
</body>
</html>
8.mouseDown事件和mouseUp事件
大家知道,mouseDown事件和mouseUp事件的组合就是click事件,但是如果在链接上按下鼠标,并移到链接之外在放开鼠标,那么就只有mouseDown事件了。这两个事件可以增加图标按钮的图像效果,
至于mouseDown和mouseUp的属性,它们是伴随着Click事件发生的,这和keyPress事件是keyDown事件和keyUp事件组合而成的机制是一样的,这3个鼠标事件也有modifier属性。
(注意:如果在onClick事件处理中使用return语句,它可以接收任何数值。只要这个值不是False,浏览器就可以完成提交。但如果浏览器得到的是False值,表单提交操作就会被取消。)
9.Click事件和dbClick事件
onClick是单击事件,onDblClick是双击事件,而实际上很难分清连续的单击和双击。它们会互相干扰。而且在ie和其他浏览器的情况还有不同。有的浏览器是双击事件的每一次单击都会触发单击事件,而在ie中,只有双击事件的第一次单击会触发单击事件。不管怎么样,单击事件都不会自动的取消或被忽略。因此,如果想使用单击和双击一个链接时触发两个完全不同的过程,则必须通过编程来延迟单击的动作知道双击。
<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>
十二、javascript函数.
函数是有function加函数名和一对带有参数括号,以及大括号组成的,其中大括号里是主体javascript语句.
例:
function hanshuname(js) //hanshuname是函数名.
{
document.write(js,”<br>”); //是函数的主体语句.
}
函数可以嵌套,如下:
function qiantao(a,b){
function lqiantao(x){return x*x;}
return Math.sqrt(lqiantao(a)+lqiantao(b));
}
函数还可以作为数据来应用,因此可以象处理其他数据那样来处理函数,如:赋值,存储,传递等.
例:
function zhi(x){return x*x;}
实际上,函数名没有什么意义,不过是保存函数的变量名而已.
a=zhi(6);//a存放的是数字36;
b=zhi;//现在b和zhi引用同一个函数.
c=b(5);//c存放的是数字25.
在一个函数体内,标识符arguments总是具有特殊含义,它是调用对象的一个特殊属性,用来引用实际参数对象.这个实际参数对象具有大量有用的属性.除此之外,它还兼有数组的角色.
尽管定义javascript函数时都有固定的参数,但调用这个函数时,传递给它的参数数目却可以是任意的,数组arguments[]允许完全存取那些实际参数值.另外,arguments有一个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;
}
}
数组arguments[ ]还为javascript函数开发了一项重要的可能性,既可以将函数编写为能够接受任意数目的实际参数.
function zhi()
{
var m=Number.NEGATIVE_INFINITY;
//遍历所有参数
//检索并记忆最大的一个.
for(var i=0;i<arguments.length;i++)
if(arguments>m)m=arguments;
//返回最大的参数值.
return m;
}
var lazgest=zhi(1,10,100,2,3,1000,4,5,10000,6);
也可以使用arguments[]数组来编写一个函数.
调用js函数
<a href=”#” onClick=”functionName()”>Link text</a>
<a href=”javascript:functionName()”>Link text</a>