jQuery事件学习

来源:转载

1.JS事件的基本知识

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>js事件基本知识</title>

<script type="text/javascript" src="js/jQuery.js"></script>

<script type="text/javascript">

//这个事件可以添加到第一个button标签上,因为第一个button标签知道fn1是什么.

function fn1() {

alert("fn1");

}

//这段代码不会被执行,因为页面是从上往下执行,在这里获取不到"#i1".

//如果想要解决这个问题,可以将下面的这些代码放到body后面.

var obj = document.getElementById("i1");

obj.onclick = function () {

alert("fn2");

//不能直接给对象添加已有事件,必须在将已有的事件添加到DOM对象的新的方法中.

fn1();

}

</script>

</head>

<body>

<input type="button" class="dd" value="点击我" onclick="fn1();">

<input type="button" class="dd" id="i1" value="点击我">

</body>

</html>

JS事件的学习和JS方法的学习揉杂在一起,JS相对于Java等语言,方法定义和使用上比较随意和简单,但是还是有一些区别,需要理清楚.

 

2.jQuery方式绑定事件

//jQuery方式绑定事件

$(function () {

var obj = $(".dd");

obj.click(function () {

alert("jQuery方式");

})

})

这里多多赘述一点,由于jQuery可以理解为是对JS的一种高级封装,这种封装是单向的,所以我们可以在JS中加入jQuery代码块,但是不能将JS和jQuery完全地揉杂在一起,所以对于jQuery的块状代码必须放入到一个分离的jQuery块中.

对于jQuery的绑定事件的方法,这里只举例click()方法,其他的方法查阅jQuery的文档即可.

 

3.事件操作和委派

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>事件操作和委派</title>

<script type="text/javascript" src="js/jQuery.js"></script>

<script type="text/javascript">

$(function () {

//间接绑定:bind.

//间接绑定,普通情况下,这种绑定方式是多余的.

//给一个或多个事件绑定函数.

$("input").bind("click", function () {

alert("bind间接绑定事件");

});

//委派绑定:live

$(".dd").live("click", function () {

alert("live委派绑定事件");

});

//我在这里新添加一个标签

//对于这种用JS新添加的标签,间接绑定的事件对这种标签没有用处.

//对于这种用JS新添加的标签,委派绑定的事件会给符合条件的标签添加事件.

$("body").append("<input type='button' class='dd' value='我是方法生成的标签,点击我''>");

})

</script>>

</head>

<body>

<input type="button" class="dd" value="点击我">

</body>

</html>

不论是bind绑定还是live绑定,都是间接绑定

 

4.事件切换

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>事件的切换</title>

<style>

.hover {

background: aqua;

}

</style>

<script type="text/javascript" src="js/jQuery.js"></script>

<script type="text/javascript">

$(function () {

//需求:鼠标覆盖变色,鼠标移走恢复

$("#d1").hover(

//鼠标覆盖

function () {

$("#d1").addClass("hover");

},

//注意上面有一个逗号

//鼠标移走

function () {

$("#d1").removeClass("hover");

}

);

})

</script>

</head>

<body>

<div style="border:1px solid black; width: 100px; height: 100px" id="d1">

Hello hover!

</div>

</body>

</html>

在jQuery开发文档中,hover()函数归类到了事件切换中,对于hover()函数的事件切换的定义,仅限于鼠标的覆盖和移走两个操作,上面是一个标准的事件切换代码.

分享给朋友:
您可能感兴趣的文章:
随机阅读: