0
点赞
收藏
分享

微信扫一扫

用了javascript却没有效果------解决方案-----写着写着成了笔记了!


javaScript

  • ​​发展经历​​
  • ​​特点:​​
  • ​​代码操练​​
  • ​​js的引入方式一----->内联式引入​​
  • ​​js的引入方式二-----外部引入​​
  • ​​常见错误原因---->​​
  • ​​js的ECMA部分​​
  • ​​数据类型​​
  • ​​运算符​​
  • ​​流程控制​​
  • ​​if 分支​​
  • ​​switch分支​​
  • ​​while循环​​
  • ​​do while循环​​
  • ​​for循环​​
  • ​​数组​​
  • ​​对象​​
  • ​​JS中的函数​​
  • ​​函数的格式​​
  • ​​带参数的函数-----​​
  • ​​JS中的对象​​
  • ​​字符串对象----String​​
  • ​​自定义对象​​
  • ​​Number对象​​
  • ​​日期对象​​
  • ​​自定义对象的三种方式​​
  • ​​原型链结构​​
  • ​​鼠标事件​​
  • ​​按键事件​​

发展经历

javaScript是一门脚本语言,运行在浏览器中的(需要由浏览器支持----即浏览器带有其解释器)

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_数组

特点:

  1. 简单,规模小不需要编译运行速度快;
  2. 是一门基于对象的语言;
  3. 有事件进行驱动;
  4. 定义变量也很简单 var a,b,c 没有数据类型的限制;

代码操练

JavaScript 是 web 开发者必学的三种语言之一:

HTML 定义网页的内容
CSS 规定网页的布局
JavaScript 对网页行为进行编程

先简单试一下:
一般html js 与css共同来开发网页使得网页具有了交互性;

js的引入方式一----->内联式引入

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>这是网页标题</title>
<!--
内嵌式引入方式
1,head标签中,用一对script标签,嵌入js代码
type 属性可以省略不写
-->
<script type="text/javascript">


function func(){
/*弹窗提示*/
alert("你好")
}
</script>

</head>
<body>
<input type="button" value="点我呀" onclick="func()"/>
</body>
</html>

js的引入方式二-----外部引入

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript" src="js/jstype.js">

</script>
<input type="button" value="点我呀!!!!" onclick="fun1()" />
</body>
</html>

js文件

function fun1(){
/*弹窗提示*/
alert("你好,又见面了!!!")
}

常见错误原因---->

一些小错误产生的原因------
用了javascript标签设置交互效果,但是没有效果出现
可能的原因-----在设置交互时没有写括号;

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_css_02

可能的原因----> 函数中缺少必要的{}

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_html_03

可能的原因------>js文件引入的位置不对

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_数组_04


可能内敛和外链混用了

比如下面这个代码----->

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_javascript_05

在调试的时候也会提示我们,相应在哪里错了;

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_javascript_06

内敛引入和外链引入的优先级

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_html_07

  1. **外链方式的复用度比内敛方式要好,
  2. 降低了代码维护难度
  3. 一个页面可以引入多个js文件
    这个css样式表是一样的逻辑;

js的ECMA部分

数据类型

js中数据类型
数值类型(number)----将整形和浮点型通通视为数值类型
字符串类型----用双引号或者单引号括起来表示
布尔类型-----true/false
空(null)-----表示没有值,不存在的引用,但并不等于空字符串或者0
未定义(undefined)值----表示虽然定义了,但是没有赋值
Object类型-----复合数据类型包括对象和数组

<script type="text/jscript">
/*
js中是弱类型脚本语言
1,所有的变量的数据类型用var 声明
2,先声明后赋值也是可以的---这中方式在声明时并不知道数据类型,而是在赋值的时候才知道
3,js中变量可以被反复声明,后声明的会将前面的覆盖
4,js中可以不用分号作为结尾,每一行代码都是一个独立的语句
5,再给变量赋值可以改变变量的数据类型;
6,基本数据类型之外时符合数据类型----OBJECT
7,js中标识符与命名规则与java中保持一致即可,避免用$起名
*/

/* <!--整数和小数都叫number类型--> */
var a=10.9999999999999;
a=10000000;
alert (a);
var i;
i=12;
alert(i);
var aa;
aa="3.24";
alert (aa);
/* 字符串类型 */
var b;
b="你好";

alert(b);
/*空值类型 */
var c=null;
alert(c);
/* typeof返回数据的类型*/
alert(typeof b);
alert(typeof a+ "你好") ;
/* 布尔类型 */
var q=true;
alert(typeof q);
var p =1>2;
alert(p);
/* 数组 */
var t=[1,2,3,4,5,6];
alert(t);
alert(typeof t);
//其他引用数据类型
var y=new Date();
alert(y);
alert(typeof y);

运算符

大部分编程语言的基本运算符号时差不多的,在js中一些运算符号对比java会有一些差别

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_javascript_08

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_css_09

基本运算符跟java差不多;

/*  // 加减乘除
alert("1+1="+(1+1));
alert((10-2)+"=10-2");
alert(10*10+"=10*10");
alert(100/10+"=100/10");
//除不尽的会进行四舍五入操作
alert("10/3="+10/3);
//取模与递加递减操作
var i;
i=1;
alert("i=1,输出i++后的值"+(i++));
var j=1;
alert("j=1,输出++j后的值"+(++j));
var k=1;
alert("输出k--的值"+(k--));
var m=1;
alert("输出--m的值"+(--m));
// 赋值运算
var a=8;
b=a;
alert("a=8,b=a求b的值"+b); */
//除以0的结果
//alert(10/0);//结果时是Infinity,而不是报错
//alert(10%0);//NaN---意思是not a number
/* alert(12.6/0);//infinity
alert(12.6%8);//4.6
alert(12.6%3.4);//2.4

var c,d;
c=1;d=2; */
//c+=d;
//alert("c=1;d=2,c+=d之后求c的值"+c);//3
//c-=d;
//alert("c=1;d=2,c-=d之后求c的值"+c);//-1
// c*=d;
//alert("c=1;d=2,c*=d之后求c的值"+c);//2
//c/=d;
//alert("c=1;d=2,c/=d之后求c的值"+c);//0.5

/* 关于+号即是运算符也是连结符号 */
//如果两端有至少一端是字符串则是连接符,如果是数字则是运算符

//alert("true+1的值"+true+1);
//布尔类型做运算时会将true视为1,false视为0
//alert(true+1);//2
//alert(100-false);//100



//关于== 号
//alert(1==1);//true

//alert("你好"=="你好");//true
//alert(1=="你好");//false

alert (1==true);
alert(false==0);
//会进行强制类型转换
/* 先比较类型,如果类型一致,再比较内容,
如果类型不一致,会强制转换为number再比较内容 */
//alert(1=="1");//true
/* === 号 */
/* 数据类型不同 直接返回false如果类型相同 才会比较内容 */
alert(1===1);//true
alert(1==="你好");//false
alert(1==="1");//false
alert (1===true);//false
alert(false===0);//false

流程控制

基本的流程控制跟java中的差不多

  1. 顺序结构 略
  2. 分支结构 if switch
  3. 循环结构 while,do while, for循环 ,foreach循环
if 分支

//输出该月的季节
var i=10;

if(i==12||i==1||i==2){
alert("冬季")
}else if(i>=3&&i<=5){
alert("春天");
}else if(i>=6&&i<=8){
alert("夏天");
}else {
alert("秋天");
}

switch分支

var j=12;
switch(j){
case 12:
case 1:
case 2:
alert("大约在冬季");
break;
case 3:
case 4:
case 5:
alert("好像在盛夏");
break;
case 6:
case 7:
case 8:
alert("金黄的秋天");
break;
default:
alert("凛冽的冬天");
break;
}

while循环

var r=0;
while(r<3){
alert(r);
r++;
}

do while循环

//求0-100的和
var t=0;
var result=0;

do {
result+=t;
t++;

}while(t<101)
alert(result);

for循环

var q=[0,1,2,3];
for (var i = 0; i < q.length; i++) {
alert(q[i]);
}

数组

数组的声明跟java中不一样,var q =[0,1,2,3]
方式一直接指定数组

var q=[0,1,2,3];
for (var i = 0; i < q.length; i++) {
alert(q[i]);
}

方式二,先声明后给数组赋值

var array= new Array();
array=[1,2,3,4,5,6,7,8,9];
array[0]=8;
console.log(array);

方式三—创建给定长度的数组

var array= new Array();
array=[1,2,3,4,5,6,7,8,9];
array[0]=8;
alert(array[0]);
console.log(array);//控制台打印数组
//alert(array);
// 创建定长数组
var arr= new Array(5);
console.log(arr);

在控制台查看信息—

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_数据类型_10

数组中存放的元素可以是任意类型的;

例如:

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_javascript_11

获取数组元素与数组的扩容----

类似于Java,可以用下表来获取数组元素,可以根据循环来遍历数组;

数组的扩容----两种方式

第一种是修改索引长度来修改数组的长度
第二种方式是修改下标来修改数组的长度

var arr =[1,2,3];

document.write("数组的元素--{")
for (var i = 0; i < arr.length; i++) {

if(i==arr.length-1){
document.write(arr[arr.length-1]+"}")
}else{
document.write(arr[i]+",");
}
}

document.write("数组长度--"+arr.length);
//通过长度修改数组的长度;
arr.length=5;
document.write("扩容后的数组的元素--{")
arr[4]="helloworld";
for (var i = 0; i < arr.length; i++) {

if(i==arr.length-1){
document.write(arr[arr.length-1]+"}")
}else{
document.write(arr[i]+",");
}
}
//通过索引可以需改数组长度
arr[10]=99;
alert(arr.length);

/* foreach循环 
遍历的i是索引而不是元素
*/

for(var i in arr){
alert(arr[i]);
}

数组中常用方法

var array=[1,"hello",2,"world",3,"js",4,"java"];
document.writeln("有返回");
document.write(array.indexOf("hello"));//1
document.writeln("没有返回");
document.write(array.indexOf(8));//-1

//数组的合并
var array1=[5,"hellow",6,"word",7,"jscript",8,"java#"];
var family =array.concat(array,array1);
console.log(family);
//alert(family);
//数组中元素拼合,
var c=array.join("---");//可以规定连接符
console.log(c);
document.write(typeof c);
//数组元素的添加和删除
var a=array.pop();//删除最后一个元素,返回最后一个元素的值,数组数组长度减少
document.write("pop后数组长度--"+array.length)
alert(a);//java
var b=array.push("今天天气不错呀!!")//添加元素,数组长度增加
document.write("push后数组长度--"+array.length)
alert(b);//8 返回添加进去的元素的下标,可以看到js中数组就类似于java中的集合
//数组中的元素移位

var aq=array1.shift();//5--- 返回被移除的第一个元素,其余元素向低位移动,驻足长度对应减少
console.log(array1);
alert(array1.length);//7
alert(aq);//5
//像数组中第一个位置添加元素,其余元素向高位移动
var v=array1.unshift("hellokity")
document.write(v);//8--返回新数组的长度
//总结一下,移除时返回的时元素,增加时返回数组的长度
//修改数组中元素
var array3=[1,2,3];
//通过下标来修改
array3[2]="hello";
//添加元素
/* 从前面添加用push();
从后面添加用下标
*/
array3.push("你好");//返回数组的长度
array3[array3.length]="helloworld";

alert(array3);//1,2,hello,你好,helloworld

//移除元素---delete
var t= delete array3[0];//true移除元素位置为 undefined
console.log(t);


//添加和删除元素同时进行
var array5=[1,1,1,1,1,1,1,1,1,1];//10个元素

var bian=array5.splice(2,2,"2","2","2");//在第二个位置添加元素,删除两个,返回的值时删除的元素
alert(bian);

alert(array5);



//可以通过调整splice的参数来达到删除元素的目的
var array6=[1,1,1,1,1,1,1,1,1,1];//10个元素
var y=array6.splice(2,3);
alert(y);
alert(array6);
//合并数组--返回一个新数组
var uu=array6.concat(array,array5);
console.log(typeof uu);
console.log(uu);

//也可以通过concat方法向数组中添加元素,返回一个 新数组
var arr1 = ["Emma", "Isabella"];
var myChildren = arr1.concat("Jacob", "Michael", "Ethan");
alert(myChildren);

//数组的分割
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3); //从下标为3的开始切割,返沪i一个新数组
var citrus = fruits.slice(1, 3); //从下标为1开始取到下标为3截至返回新数组;(范围[) )

对象

var cars = ["Porsche", "Volvo", "BMW"];         // 数组
var x = {firstName:"Bill", lastName:"Gates"}; // 对象

JS中的函数

函数的格式

function 函数名(参数列表){
方法体
}
或者
var 函数名 =function (参数列表){
方法体
}

或者
var 方法名 =new Function(‘js代码’);

function methodA(){
document.writeln("你好")
}
</script>
<button style="width: 5.25rem;height: 2.25rem;" value="提交" onclick="methodA()"></button>

<script type="text/javascript">

var methodB= function(){
alert("helloworld");
}

var methodC = new Function('alert("这是第三种方式")');
methodC();
</script>
<input type="button" style="width: 2.625rem;height: 0.625rem;" ondblclick="methodB()" />

带参数的函数-----

var sum =0;
function fun1 (a,b,c){
sum=a+b+c;
document.write(sum)
}
//调用函数
fun1(10,20,70);



var avg =function(a,b,c,d){
return (a+b+c+d)/4;
}
document.write(avg(2,3,4,5));

关于参数的个数问题----
可以比定义参数个数少也可以多

var avg =function(a,b,c,d){
return (a+b+c+d)/4;
}
document.write(avg(2,3,4,5,6));

函数的参数也可以是一个函数

<script type="text/javascript">
var sum = 0;

function fun1(a, b, c) {
sum = a + b + c;
alert(sum);
}
//调用函数
fun1(10, 20, 70);



var avg = function(a, b, c, d) {
return (a + b + c + d) / 4;
}
document.write(avg(2, 3, 4, 5, ));

fun1(1, avg(1, 2, 3, 4), 3);

一下这张方式会看起来比较难以理解,只需要知道这种写法就可以了;

function funa(i, j) {
return i + j;
}
function funb(a) {
return a(10, 20);
}
var sum = funb(funa)
alert(sum)

function func(b){
return b(20,20);
}
var asd=func(funa);
alert(asd);

function methodA (a,b,c,d){
return a-b+c-d;
}
function methodB(h){
return h(1,2,3,4)
}
var t=methodB(methodA);
alert(t);

这种方式-----可以理解为(以methodA和methodB为例)
methodA正常定义,methodB传入参数h,h包含四个数,然后嚷着四个参数干嘛呢?
想让他们做加减运算,可以把methodA方法名传入(不要带括号,因为带括号的话理解为你还要往里面传参数,不带的话就相当于把方法methodB的参数传入到MethodA中),以达到目的;

JS中的对象

字符串对象----String

var str="helloworld"
var c=str.charAt(8);
alert(c);
var str1="你好世界!"
var str3=str.concat(str1);
document.write(str3);
var str5=str.concat(str,str1,str3);
alert(str5
document.write(str.repeat(3));
var i =str.substr(1,6);//从1截取6个

var q=str.substring(1,6)//从开始到6结束

console.log(i);
console.log(q);

//js中将字符产解析为JS代码运行

var strstr = ' var k ="你好!!!"';
//alert(strstr);//' var k ="你好!!!"'
//alert(k);//k未定义
eval(strstr);//解析字符串为代码
alert(k);

自定义对象

person = new Object();
person.firstname="Gavin";
person.lastname="Doe";
person.age=18;
person.eyecolor="blue";
alert(person);
console.log(person);//按照字母顺序排序
document.write(person);

person1= new Object();
//使用对象构造器
person1={firstname:"Gavin",lastname:"Doe",age:19,eyecolor:"blue"};
alert(person1);



//使用对象构造器----方法作为载体
function girl(firstname,lastname,age,eyecolor){
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
// 有了构造器就可以按照构造器构造对象了
var girlfriend=new girl("John","Tom",22,"blue");
alert(girlfriend);
console.log(girlfriend);

// 除此之外还可以在构造中添加方法
function boy(firstname,lastname,age,eyecolor){
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changename=changename;//这个不能省哦
function changename(name){
this.lastname=name;
}

}

myfriend=new boy("Sally","Rally",48,"green");
myfriend.changename("Tom")
document.write(myfriend.lastname);
console.log(boy);

/* JavaScript 的对象是可变的

对象是可变的,它们是通过引用来传递的。

以下实例的 person 对象不会创建副本: */

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10; // x.age 和 person.age 都会改变跟java中一样;

alert(person.age);

/* new 和不 new的区别:

如果 new 了函数内的 this 会指向当前这个 person 并且就算函数内部不 return 也会返回一个对象。
如果不 new 的话函数内的 this 指向的是 window。 */

function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
return [this.firstname,this.lastname,this.age,this.eyecolor,this]
}

var myFather=new person("John","Doe",50,"blue");
var myMother=person("Sally","Rally",48,"green");
console.log(myFather) // this 输出一个 person 对象
console.log(myMother) // this 输出 window 对象

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_数据类型_12

Number对象

// document.write(Number.MAX_SAFE_INTEGER);
// document.write(Number.MIN_SAFE_INTEGER);
// document.write("\t")
// document.write(Number.MAX_VALUE);
//document.write(Number.MIN_VALUE);

var t=100;
Number.MAX_INTEGER=t;
document.write(Number.MAX_INTEGER);

//字符串解析为数字
alert(Number.parseInt("10.234")+70);
alert(Number.parseFloat("10")+90);
alert(Number.isInteger(12));//判断是否为整型


var i=10%0;//非数字
var j=10/3;//无限循环
document.write(Number.isFinite(i));//false
document.write(Number.isFinite(j));//true
document.write(Number.isNaN(i));//true
document.write(Number.isNaN(j));//false

日期对象

var d1= new Date();
var d2= new Date("October 13,1975 11:13:09");
var d3=new Date(79,5,24,11,33,0);
console.log(d1);
console.log(d2);
console.log(d3);



var x=new Date();
x.setFullYear(2100,0,14);
var today = new Date();

if (x>today)
{
alert("今天是2100年1月14日之前");
}
else
{
alert("今天是2100年1月14日之后");
}


Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};

// 获取年份
// ①
if (/(y+)/i.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}

for (var k in o) {
// ②
if (new RegExp("(" + k + ")", "i").test(fmt)) {
fmt = fmt.replace(
RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
var fmt=d2.format("yyyy-MM-dd hh:mm:ss")
alert(fmt);

var now = new Date();
var nowStr = now.format("YYYY-MM-DD"); // 2021-01-11
var dd=new Date();
var i=dd.getDate();//返回月份的第几天
var ii=dd.getDay();//返回一周的第几天
var iii=dd.getFullYear();//返会完整年份
var iiii=dd.getTimezoneOffset();//返回
var iiiii =dd.getYear();//返回与1900年之间的年份差
console.log(i);
console.log(ii);
console.log(iii);
console.log(iiii);
console.log(iiiii);

var t = new Date();
var tt = new Date("1990,10,19")
if(t>tt){
alert(t);
}else{
alert(tt);
}

自定义对象的三种方式

<script type="text/javascript" >  
//创建对像=------方式一通过Object来定义
var per= new Object();
per.name="扎根三";
per.age=19;
per.gender="男";

per.perinfo=function(address){
console.log("姓名--"+this.name+"--性别--"+this.gender+"--年龄--"+this.age+"岁--"+address+"人")
}
console.log(per.name+"的个人信息--");
per.perinfo("新疆");


</script>
<script type="text/javascript">
//准备一个构造方法
function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;

this.like=function(food){
console.log(this.name+"--"+this.gender+"--"+this.age+"--"+"喜欢吃"+food)
}
}
var perp=new Person("零四十",19,"女");
console.log(perp.name+"的个人信息----");
perp.like('饺子');
</script>

<script type="text/javascript">
//json
var per={name:"张牙舞爪",
age:19,gender:"男",
eat:function(food){
document.write(this.age+"岁的"+this.gender+"孩子"+this.name+"正在吃"+food);
}
};
console.log(per);
per.eat("地瓜");
</script>

原型链结构

用了javascript却没有效果------解决方案-----写着写着成了笔记了!_css_13

鼠标事件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>事件绑定与触发</title>


</head>
<body onload="startTime()">

<!-- JS事件驱动型
当单机按钮时,触发某些JS代码
一个事件可以同时绑定多个事件
一个页面元素可以同时绑定躲着事件-->
<script src="js/danji.js" type="text/javascript" charset="utf-8"></script>
<input type="button" value="单击按钮!!!" onclick="clicked()" />
<input type="button" value="双击按钮!!!" ondblclick="answer()" />
<input type="button" value="单击可执行多个方法的按钮" onclick="clicked(),answer()" />
<input type="button" value="悬停在我之上" onmouseover="over()" />

<!-- // <embed src="music/再见亦是泪.mp3"></embed> -->

<!-- 区别是一个是修改id匹配的内容,一个是修改当前对象的内容 -->
<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是? </button>
<!-- <p id='demo'></p> -->
<!-- 修改当前对象内容 -->
<button onclick="this.innerHTML=Date()">现在是</button>
<div id ="demo">
想要知道事件请单击"现在的时间是?" 按钮
</div>
<!-- 鼠标按下----无论左键右键 -->
<button onmousedown="this.innerHTML=Date()">点我试试看</button>
<!-- 鼠标指上去 --> <!-- 鼠标离开 -->
<button onmouseenter="this.innerHTML=Date()" , onmouseleave="this.innerHTML=Date()">鼠标在我身上</button>

<button onmouseenter="getElementById('word').innerHTML=Date()" , onmouseout="getElementById('txt').innerHTML=Date()">鼠标离开我</button>
<button onmouseover="this.innerHTML=Date()" onmouseout="this.innerHTML=Date()">鼠标来与去</button>

<button onmousewheel="this.innerHTML=Date()" > 鼠标</button>

<div id="word">
这是第一块
</div>
<div id="txt">
这是下一块
</div>



<div onkeydown="answer()"></div>
</body>
</html>

鼠标事件练习----

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>鼠标事件练习</title>
<style type="text/css">
.d1{
width: 12.5rem;
height: 12.5rem;
background-color: gold;
}
</style>
</head>

<body>
<script src="js/danji.js" type="text/javascript" charset="utf-8"></script>
<div class="d1"
onmouseenter="enter()"
onmouseout="out()"
onmouseup="up()"
onmousedown="down()"
onmousemove="move()"
onmouseover="over()"
onmousewheel="wheel">
</div>
</body>
</html>

按键事件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>按键事件</title>
</head>
<body>
<script type="text/javascript">

function fun1(){
console.log("按键按下");
}
function fun2(){
console.log("按键抬起");
}
function fun3(){
console.log("按键按下又抬起");
}
</script>
<input type="text" placeholder="请输入账号" onkeydown="fun1()" onkeyup="fun2()" onkeypress="fun3()" />
</body>
</html>


举报

相关推荐

0 条评论