jQuery 事件注册
重点事件注册.on()
<!DOCTYPE html>
<html lang="zh-CN"> <head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hue {
background-color: #0ff;
}
</style>
</head> <body> <input type="button" value="增加" id="btn">
<input type="button" value="自定义" id="btn1">
<input type="button" value="移除" id="btn2">
<div>
<p>我是一个P</p>
</div> <script src="jquery-1.12.4.js"></script>
<script>
/* on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
$(selector).on(event,childSelector,data,function)
event 必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值,也可以是数组。必须是有效的事件。
childSelector 可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
data 可选。规定传递到函数的额外数据。
function 可选。规定当事件发生时运行的函数。 自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
提示:如需移除事件处理程序,请使用 off() 方法。
提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。 */
$(function () {
//给btn注册点击事件
$("#btn").on("click", function () {
$("<p>我是新建的p元素</p>").appendTo("div");
}); //注册多个事件
$("p").on("mouseover mouseout", function () {
$("p").toggleClass("hue");
}); //给div注册委托事件
$("div").on("mouseover mouseout", "p", function () {
$("p").toggleClass("hue");
}); //多个事件 各自处理函数
$("p").on({
mouseover: function () {
$("p").css("background-color", "lightgray");
},
mouseout: function () {
$("p").css("background-color", "lightblue");
},
click: function () {
$("p").css("background-color", "yellow");
}
}); //自定义事件
$("p").on("myOwnEvent", function (event, showName) {
$(this).text(showName + "单击此按钮可将自定义事件附加到此p元素上。").show();
});
$("#btn1").click(function () {
$("p").trigger("myOwnEvent", ["小白+"]);
}); //off()移除on方法添加的事件
$("#btn2").click(function () {
$("p").off("click");
}); });
</script> </body> </html>
1.bind()方法
//bind方式
//bind() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。
//自 jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的首选方法。
//语法:$(selector).bind(event,data,function,map)
//event 必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
//data 可选。规定传递到函数的额外数据。
//function 必需。规定当事件发生时运行的函数。
$("p").bind("mouseover mouseout", function () {
$("p").toggleClass("intro");
});
2.delegate()
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
//delegate:代理,委托(给父元素注册委托事件,最终还是有子元素来执行。)
//$('div').delegate(childSelector,event,data,function)
//delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
//使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
//(自 jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的首选方法。)
//childSelector 必需。规定要添加事件处理程序的一个或多个子元素。(真正执行事件的子元素)
//event 必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
//data 可选。规定传递到函数的额外数据。
//function 必需。规定当事件发生时运行的函数。
$(document).ready(function () {
$("div").delegate("p", "click", function () {
$(this).slideToggle();
});
$("button").click(function () {
$("<p>这是一个新段落。</p>").insertAfter("button");
});
});
</script>
</head> <body>
<p><b>注意:</b> 只有在 div 元素中的 p 元素才有效果。</p>
<div style="background-color:yellow">
<p>这是一个段落。</p>
<p>点击任意一个 p 元素,使其消失,包括这个。</p>
<button>在这个按钮后新增一个 p 元素</button>
</div>
</body> </html>
jQuery 事件注册的更多相关文章
- jquery 事件注册 与重复事件处理
<!doctype html><html lang="us"><head><meta charset="utf-8"& ...
- jquery 事件对象笔记
jQuery元素操作 设置或获取元素固有属性 获取 prop(属性名) 修改 prop(属性名,值) 获取自定义属性 ...
- jquery事件核心源码分析
我们从绑定事件开始,一步步往下看: 以jquery.1.8.3为例,平时通过jquery绑定事件最常用的是on方法,大概分为下面3种类型: $(target).on('click',function( ...
- 解密jQuery事件核心 - 委托设计(二)
第一篇 http://www.cnblogs.com/aaronjs/p/3444874.html 从上章就能得出几个信息: 事件信息都存储在数据缓存中 对于没有特殊事件特有监听方法和普通事件都用ad ...
- 解密jQuery事件核心 - 自定义设计(三)
接上文http://www.cnblogs.com/aaronjs/p/3447483.html 本文重点:自定义事件 “通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率 ...
- 解密jQuery事件核心 - 模拟事件(四)
前几章已经把最核心的实现都分解过了,这一章我们看看jQuery是如何实现事件模拟的 在Internet Explorer 8和更低,一些事件change 和 submit本身不冒泡,但jQuery修改 ...
- jQuery源代码学习之九—jQuery事件模块
jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...
- jquery事件学习笔记(转载)
一.页面载入1.ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数.这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度. 简单地说,这个方法纯粹是对向wi ...
- jQuery事件与动画
一 事件 1 加载DOM事件 $(document).ready():执行时机:DOM元素准备就绪 执行次数:多次 简单写法:原:$(document).ready(function(){}) ...
随机推荐
- 操作ini配置文件设计一个最基本的可视化数据库系统
对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能. ini配置文件的用法参考我以前写的 ...
- golang之指针
先上代码 package main import "fmt" type myInt int //匿名函数 //值的接收 //指针的接收 //*myint表示myInt的指针类型 / ...
- 解压*.tar.bz2的坑
下了一个压缩包,tar -xf 解压不了 解决办法: 装了bzip2工具 bzip2 -d **.tar.bz2 //将文件解压成**.tar tar -xf **.tar //解包 听说可以 tar ...
- MyEclipse中Web项目文件名上红色和黄色感叹号处理
MyEclipse中Web项目文件名上红色和黄色感叹号处理 先说红色感叹号: 那就是代表错误,说明你引用的JAR包位置无效,所以,你应该重新将包导入到工程里面去,这个具体应该会吧,如果是初 ...
- RSA加密解密总结
简单的控制台程序 #include"stdafx.h" #include <math.h> #include<string.h> /*/求解密密钥d的函数( ...
- 解决linux下tomcat停止进程任存在问题
解决linux下tomcat停止进程任存在问题 在Linux下(之所以强调linux下,是因为在windows下正常),执行tomcat ./shutdown.sh 后,虽然tomcat服务不能正常访 ...
- 解决 sublime text 3 右键菜单栏出现多余的菜单项分隔符的问题
很早之前装了一个插件 JavaScript Completions,虽然还没有用过它的高级功能,但随着 sublime text 3 逐渐成为我主要的编程工具,最近发现在右键点击文件出现的菜单栏中,菜 ...
- Android-自定义开关(升级版)
效果图: 定义一个类,取名为MySwitch.java,此类去继承View,为何是继承View而不是去继承ViewGroup呢,是因为自定义开关没有子控件,之需要操作自身绘制即可 package cu ...
- eclipse中配置server中选择tomcat8无法进行下一步处理
在创建server的时候,选择tomcat8后,server name为空,并且无法手动输入,同时无法进行下一步操作. 解决方案如下: 1.退出eclipse. 2.找到eclipse[工作空间][当 ...
- C# 中 String 类型的详细讲解
C# 字符串(String) 在 C# 中,您可以使用字符数组来表示字符串,但更常见的做法是使用 string 关键字来声明一个字符串变量.string 关键字是 System.String 类的别名 ...