普通事件,是指直接对元素进行事件注册,然后触发

而事件绑定是将事件注册到元素上

两者区别就是在于普通事件不可以重复添加多个事件,若添加也会覆盖,只会触发其中一个事件(最后注册的那个)

而事件绑定是可以重复绑定多个事件,而且都可以触发

<html>

    <a class="ack1">点击触发绑定事件</a><br><br>
<a class="ack2">点击触发普通事件</a>
</html> <script>
function foo1(){
alert('触发点击1');
}
function foo2(){
alert('触发点击2');
} var ack1=document.getElementsByClassName("ack1");
ack1.addEventListener('click',foo1);
ack1.addEventListener('click',foo2);
//弹出 触发点击1 和 触发点击2 var ack2 = document.getElementsByClassName("ack2");
ack2.onclick = foo1;
ack2.onclick = foo2;
//只会弹出 触发点击2
</script>

而在jQuery中则有点不同,而且jQuery本身允许通过普通事件添加多个触发函数

    function foo1(){
alert('触发点击1');
}
function foo2(){
alert('触发点击2');
} //都会触发两个函数 弹出 触发点击1 触发点击2
$(".ack1").on('click',foo1);
$(".ack1").on('click',foo2); $(".ack2").click(foo1);
$(".ack2").click(foo2);
//都会触发两个函数 弹出 触发点击1 触发点击2

jQuery中事件绑定是指为动态创建的元素绑定上事件触发,不只是为元素绑定多个事件

注意对元素动态绑定事件,一般需要通过父类元素为其绑定,才会使该子类(刚刚添加的元素)可以被触发

    $(document).on('click','.ack1',foo1);
$(".ack1").click(function(){
var ele=$(this).clone();
$(this).after(ele);  //后克隆的元素依旧可以触发foo1事件函数
}); $(".ack2").click(foo2);
$(".ack2").click(function(){
var ele=$(this).clone();
$(this).after(ele);  //无法触发foo2事件函数
});

事件委托:

$("要绑定标签的上级标签").on("click","要绑定的标签",function)

$("要绑定标签的上级标签").delegate("要绑定的标签","click",function)

js和jQuery中的事件绑定与普通事件的更多相关文章

  1. jQuery中bind函数绑定多个事件

    名人名言:道德是真理之花.——雨果 在jQuery中绑定多个事件名称是,使用空格隔开,举例如下: $("#foo").bind("mouseenter mouseleav ...

  2. 使用JS或jQuery模拟鼠标点击a标签事件代码

    原文 使用JS或jQuery模拟鼠标点击a标签事件代码 这篇文章主要介绍了使用JS或jQuery模拟鼠标点击a标签事件代码,需要的朋友可以参考下 <a id="alink" ...

  3. js课程 5-13 js事件绑定和鼠标事件注意事项有哪些

    js课程 5-13  js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...

  4. js和jquery中有关透明度操作的问题

    在日常开发的网站中,常常会用到设置透明度问题,最简单的就是图片的淡入淡出效果.下面我介绍一下在原生js和jQuery中设置透明度的相关问题和注意点: 1 透明度样式设置       透明度在IE浏览器 ...

  5. 如何在js或者jquery中操作EL表达式的一个List集合

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先说明此篇博客看明白了可以干嘛: 就是在js或者jquery中操作一个EL表达式的一个list集合或者复杂类型 ...

  6. js和jquery中获取非行间样式

    样式又分为了行间样式和非行间样式.一般来说行间样式用的是比较少的,因为它能够作用的范围就只有一个元素,而非行间样式的作用范围可以是一类元素(即拥有相同德标签,或者说是有相同的类名,(当然id名不可能相 ...

  7. JS和jQuery中的事件总结(一)

    学而时习之,小白现在天天写页面,基础知识还是要恶补的. 进入正题,什么是事件(此处单独对jQuery.JS)?就是JS和Html之间的交互时呢,用户和浏览器操作页面时的动作(其实是为引发的效果的执行操 ...

  8. JS和JQuery中的事件托付 学习笔记

    事件托付事实上并非一个非常高级的技巧,比方在一个页面里面.当仅仅存在两个button的时候.可能你给button加入监听是这种:(本文不考虑浏览器兼容性.关于事件的兼容性可參考前面的学习笔记) < ...

  9. python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))

    一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...

随机推荐

  1. POI Excel 单元格内容类型判断并取值

    个人用到的 String birthdayVal = null;                                                                     ...

  2. BZOJ4946[Noi2017]蔬菜——线段树+堆+模拟费用流

    题目链接: [Noi2017]蔬菜 题目大意:有$n$种蔬菜,每种蔬菜有$c_{i}$个,每种蔬菜每天有$x_{i}$个单位会坏掉(准确来说每天每种蔬菜坏掉的量是$x_{i}-$当天这种蔬菜卖出量), ...

  3. 数据库 -- pymysql

    pythen3连接mysql pymsql介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. Django中也可以使用P ...

  4. Codeforces340 E. Iahub and Permutations

    Codeforces题号:#340E 出处: Codeforces 主要算法:思维+DP 难度:4.8 题意: 有一个长度为$n$的排列(即各元素互不相同),其中有一些为-1.现要求将数填到这些-1上 ...

  5. Java 视频处理,截帧操作

    1.maven <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</ ...

  6. composer阿里云短信服务不支持传参为数值--为2017年短信接口,2018阿里云有更新http://www.cnblogs.com/q1104460935/p/8916096.html

    composer 阿里云短信服务使用 xuying/aliyun_mns     更新到2017年初,不再更新 ){;, ); }; } ; }; }; }} 以下为发送成功返回对象 object(A ...

  7. 【Tsinsen A1339】JZPLCM (树状数组)

    Description 原题链接 ​ 给定一长度为\(~n~\)的正整数序列\(~a~\),有\(~q~\)次询问,每次询问一段区间内所有数的\(~LCM~\)(即最小公倍数).由于答案可能很大,输出 ...

  8. Mysql数据库操作笔记

     如果数据库表字段存在,则删除该表 drop table if exists `table_name` 创建数据库表语句 create table `table_name`( `id` ) not n ...

  9. mysql5.6更改datadir数据存储目录

    环境需求: 有些数据存储场景可能需要将数据放到指定的挂载路径或目录,mysql默认存放数据路径在:/var/lib/mysql下. 测试环境: 操作步骤: 1. 查看当前存储目录 [root@mysq ...

  10. Java线程池中submit()和execute之间的区别?

    一: submit()方法,可以提供Future < T > 类型的返回值. executor()方法,无返回值. execute无返回值 public void execute(Runn ...