`
longying2008
  • 浏览: 302311 次
社区版块
存档分类
最新评论

jQuery中的事件

阅读更多

1.加载DOM

在常规的JavaScript中,使用window.onload方法;而在jQuery中,使用$(document).ready()方法。

window.onload与$(document).ready()的不同:

● 执行时间

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

● 编写个数不同

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 。它会默认用后面的函数覆盖前面的函数。
$(document).ready()可以同时编写多个,并且都可以得到执行

● 简化写法

window.onload没有简化写法
$(document).ready(function(){})可以简写成$(function(){});

2.事件绑定

在文档加载完成后,如果打算为元素绑定事件来完成某些操作,可以使用bind()方法对匹配元素进行特定事件的绑定。

bind()的调用格式:

bind(type [,data] ,fn);

type:代表事件类型,类型包括:blur、focus、load、resize、scroll、unload、click、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseinter、mouseleave、change、select、submit、keydown、keypress、keyup和error等。

data:可选参数,作为event.data属性值传递给事件对象的额外数据对象

fn:有来绑定处理的函数

 

<body>
<!-- 第1种效果-->
<div id="panel">
	<h5 class="head">什么是jQuery?</h5>
	<div class="content" style="display: none">
		jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写的更少,做的更多)。
	jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript
	高手加入,现在由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,
	在世界前10000个访问最多的网站中,有超过55%在使用jQuery。
	</div>
</div>
<hr />
<!-- 第2种效果-->
<div id="panel_2">
	<h5 class="head">什么是jQuery?</h5>
	<div class="content" style="display: none">
		jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写的更少,做的更多)。
	jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript
	高手加入,现在由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,
	在世界前10000个访问最多的网站中,有超过55%在使用jQuery。
	</div>
</div>
<script type="text/javascript"> 
	//光标滑过时显示,离开隐藏
	$("#panel h5.head").bind("mouseover", function(){
		$(this).next("div.content").show();
	});
	$("#panel h5.head").bind("mouseout", function(){
		$(this).next("div.content").hide();
	});
	//单击以改变是否显示
	$("#panel_2 h5.head").bind("click", function(){
		if($(this).next("div.content").is(":visible")){//如果显示
			$(this).next("div.content").hide();
		}else{
			$(this).next("div.content").show();
		}
	});
</script>
</body>

3.合成事件

● hover()方法

hover()方法的语法结构:

hover(enter, leave);

hover()方法用于模拟光标悬停事件。当光标移动到元素上时,会触发enter函数;当光标移出这个元素时,会触发leave函数。

● toggle()方法

toggle()方法的语法结构:

toggle(fn1, fn2,...,fnN);

toggle()方法用于模拟鼠标连续单击事件。第一次单击元素时,触发fn1函数,当再次单元素时,触发fn2函数;如果有更多函数,则依次触发,直到最后一个。

4.事件冒泡

事件冒泡现象重现:

 

<body>
<div id="content">
	外层div元素
	<span>内层span元素</span>
	外层div元素
</div>
<div id="msg"></div>
<script type="text/javascript"> 
	//为span元素绑定事件
	$("#content span").bind("click", function(){
		var txt = $("#msg").html() + "<p>span元素被单击</p>";
		$("#msg").html(txt)
	});
	//为span元素绑定事件
	$("#content").bind("click", function(){
		var txt = $("#msg").html() + "<p>div元素被单击</p>";
		$("#msg").html(txt)
	});
	//为span元素绑定事件
	$("body").bind("click", function(){
		var txt = $("#msg").html() + "<p>body元素被单击</p>";
		$("#msg").html(txt)
	});
</script>
</body>

停止事件冒泡:

 

<script type="text/javascript"> 
	//为span元素绑定事件
	$("#content span").bind("click", function(event){
		var txt = $("#msg").html() + "<p>span元素被单击</p>";
		$("#msg").html(txt);
		event.stopPropagation();
	});
	//为span元素绑定事件
	$("#content").bind("click", function(event){
		var txt = $("#msg").html() + "<p>div元素被单击</p>";
		$("#msg").html(txt);
		event.stopPropagation();
	});
	//为span元素绑定事件
	$("body").bind("click", function(event){
		var txt = $("#msg").html() + "<p>body元素被单击</p>";
		$("#msg").html(txt);
		event.stopPropagation();
	});
</script>

当单击元素时,事件对象event就被创建了。这个事件对象只有在事件处理函数才能访问到。事件处理函数执行完毕后,事件对象就被毁弃。

5.事件对象的属性

6.移除事件:unbind()

7.模拟事件:使用trigger()方法模拟事件

● 常用模拟

模拟单击事件:$("#btn").trigger("click");(简化:$("#btn").click();)

● 触发自定义事件

 

<script type="text/javascript"> 
	//为Button绑定单击事件
	$("#btn").bind("myClick", function(){
		$("#test").append("<p>我自定义的事件<p>");
	});
	//触发自定义事件
	#("#btn").trigger("myClick");
</script>

● 传递数据

 

<script type="text/javascript"> 
	//为Button绑定单击事件
	$("#btn").bind("myClick", function(event, message1, message2){
		$("#test").append("<p>"+message1+message2+<p>");
	});
	//触发自定义事件
	#("#btn").trigger("myClick" ,["我自定义的", "事件"]);//传递两个参数
</script>

8.添加事件命名空间,便于管理

 

<script type="text/javascript">
	$("#btn").bind("click.plugin", function(event, message1, message2){
		$("#test").append("<p>"+message1+message2+<p>");
	});
	$("#btn").bind("mouseover.plugin", function(event, message1, message2){
		$("#test").append("<p>"+message1+message2+<p>");
	});
	$("#btn").bind("myClick", function(event, message1, message2){
		$("#test").append("<p>"+message1+message2+<p>");
	};
	#("#btn").unbind(".plugin");//移除plugin命名空间下的事件
</script>




分享到:
评论

相关推荐

    jQuery中事件与动画的总结分享

    本文主要对jQuery中事件和动画的操作进行了总结和分享。 首先,介绍的是jQuery中关于DOM加载完成的事件处理。在传统的JavaScript编程中,window.onload事件只能定义一次,而jQuery提供的$(function(){})在文档的DOM...

    jquery-事件冒泡

    jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡...

    jquery鼠标滚轮事件

    在本文中,我们将深入探讨jQuery中关于鼠标滚轮事件的知识点。 首先,让我们了解什么是鼠标滚轮事件。在Web开发中,鼠标滚轮事件是当用户滚动鼠标滚轮时触发的事件。这些事件包括`wheel`,这是HTML5新增的标准事件...

    JQuery绑定事件

    **jQuery绑定事件**是JavaScript库jQuery中的核心功能之一,它极大地简化了DOM元素事件处理的流程,使得开发者能够更加高效地编写代码。在JavaScript原生语法中,为元素添加事件监听器通常涉及到`addEventListener`...

    jQuery历史事件时间轴插件.rar|jQuery历史事件时间轴插件.rar

    jQuery历史事件时间轴插件;jQuery历史事件时间轴插件jQuery历史事件时间轴插件jQuery历史事件时间轴插件jQuery历史事件时间轴插件jQuery历史事件时间轴插件jQuery历史事件时间轴插件

    jquery效果事件

    三、jQuery事件 1. 基本事件绑定:jQuery提供了`.on()`方法来绑定事件。例如,`$("#myButton").on("click", function() { ... })`表示当id为"myButton"的元素被点击时,执行匿名函数内的代码。 2. 鼠标事件:常见...

    jquery监听鼠标滚轮事件+js监听滚轮事件

    为了捕捉这一行为并根据需要做出响应,开发者通常会使用JavaScript或jQuery来监听滚轮事件。本篇将详细介绍如何使用jQuery和原生JavaScript实现鼠标滚轮事件的监听。 一、jQuery监听鼠标滚轮事件 jQuery库提供了一...

    为jQuery添加自定义事件机制

    自定义事件在jQuery中可以通过`$.fn.extend`方法来实现。`$.fn.extend`允许我们向jQuery对象添加新的方法,这些方法可以用来触发或绑定自定义事件。下面是一个简单的例子: ```javascript $.fn.extend({ ...

    jQuery1.12.4+jQuery中文手册.rar

    在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery-1.12.4.min.js`。前者是未压缩的源代码,适合开发调试使用,后者是经过压缩和优化的版本,适用于生产环境,体积更小,加载速度更快...

    jQuery带事件记录的多功能日历

    在这款日历插件中,jQuery扮演了核心的角色,为事件记录、日历展示等功能提供了便利的API和方法。 日历插件的事件记录功能是其核心亮点。用户可以方便地在任何日期上添加事件,无论是会议、约会还是简单的待办事项...

    jquery hover事件鼠标悬停导航条浮动div层滑动高亮显示

    jquery hover事件鼠标悬停导航条浮动div层滑动高亮显示 jquery hover事件鼠标悬停导航条浮动div层滑动高亮显示 jquery hover事件鼠标悬停导航条浮动div层滑动高亮显示

    jQuery Mobile事件参考手册.zip_jQuery Mobile事件参考手册

    该手册详细阐述了jQuery Mobile中的各种事件,帮助开发者更好地理解和利用这些事件来提升用户体验和交互性。 jQuery Mobile的事件可以分为两类:页面生命周期事件和用户交互事件。页面生命周期事件主要与页面加载、...

    jquery 中文帮助文档

    jQuery生态系统中有很多插件,它们扩展了jQuery的功能,比如表单验证插件jQuery Validate,轮播图插件jQuery Carousel,弹出框插件jQuery UI Dialog等。这些插件通常通过`$.fn.extend()`方法与jQuery集成。 **...

    jquery中的事件

    jquery中的事件

    jquery鼠标滚轮事件支持插件

    在给定的“jquery鼠标滚轮事件支持插件”中,我们关注的是如何利用jQuery扩展来处理鼠标的滚轮事件。这个插件允许开发者监听和响应用户滚动鼠标的滚轮,从而在网页上实现更加动态和交互的功能。 标题中的“jquery...

    jquery快速学三(事件与动画)

    通过以上对jQuery事件处理和动画效果的讲解,相信你已经对这两个主题有了全面的理解。结合实际的HTML文档,不断练习和探索,你将能熟练运用jQuery,提升网页交互体验。在实践中,不断学习,持续进步,是成为优秀的...

Global site tag (gtag.js) - Google Analytics