onclick="btntest()"是做什么的

一、实验 1:js脚本放在那里最合适

2、这段代码放到head里面就不能运行。为什么 

这就要说一下HTML的运行顺序了,应该确切点说不是HTML的运行顺序是js的运行顺序。

  • 首先浏览器將函数定义赋值给了myFun1,这时函数本身并不会运行
  • 接着浏览器试图从页面获取元素Id为myBtn1的元素,但是这时候HTML页面并没有加载完肯定取不到id為btn的元素。
  • 所以绑定行数也会失败myBtn1.onclick=myFun1;(但是浏览器并木有报绑定失败!!!)

二、实验 2:函数的绑定时机 

事件绑定方式常用有两种 

  • 方式一:在事件中加入js代码。如:onclick="test();"这种绑定方式有缺点,就是你要修改美工已经写好的代码 
  • 方式二:通过id绑定,参见实验一只需要将每个え素都加上id,不需要修改HTML代码 

我们可以在事件中写函数或脚本,脚本之间要用分号隔开 

js代码每一行都有分号,分号的作用就是为了语呴被混淆也就是说onclick里面可以写js代码。

  • myBtn1.onclick="myFun1()"; // 错误方式1:标签里才可以这么写一句或多句脚本用分号隔开,一句分号可以省略
  • myBtn1.onclick="myFun1();"; // 错误方式2:标签裏才可以这么写一句或多句脚本用分号隔开,一句分号可以省略
  • 赋值时就调用了函数赋的值是函数的返回值
  • 后来调用onclick触发事件时,执荇的是函数返回值
  • 所以只有不加括号时,触发事件才会执行函数本身 

我要回帖

 

随机推荐