jQuery选择器

属性选择器

<p>p1</p>

<span style="font-size:24px;"></span><pre name="code" class="html" style="font-size: 24px;">$(document).ready(function(){
$("button").click(function(){
$("p").text("你好aaaa123");
});
});


类选择器

<p class="pclass">p1</p>

$(document).ready(function(){
$("button").click(function(){
$(".pclass").text("你好aaaa123");
});
});

id选择器

<p id="pid">p1</p>

$(document).ready(function(){
$("button").click(function(){
$("#pclass").text("你好aaaa123");
});
});

jQuery事件

经常使用事件方法

$(document).ready(function(){
//$("button").click(function(){ <span style="white-space:pre"> </span>点击隐藏
//$("button").dblclick(function(){<span style="white-space:pre"> </span>双击隐藏
//$("button").mouseenter(function(){<span style="white-space:pre"> </span>鼠标进入隐藏
$("button").mouseleave(function(){<span style="white-space:pre"> </span>鼠标移开隐藏
$(this).hide();
});
});

绑定事件


<span style="font-size:24px;">$(document).ready(function(){

$("#clickMeBtn").bind("click",clickHandler1);
$("#clickMeBtn").bind("click",clickHandler2);
}); function clickHandler1(e){
console.log("clickHandler1");
}
function clickHandler2(e){
console.log("clickHandler2");
}</span>


运行打印两行。没有问题。




解除绑定事件

(官方推荐使用on和offkeyword。事实上bind和unbind底层也是调用的on和off方法。一样,可是on和offkeyword在1.7版本号之后才有)
$(document).ready(function(){
$("#clickMeBtn").on("click",clickHandler1);
$("#clickMeBtn").on("click",clickHandler2);
$("#clickMeBtn").off("click",clickHandler2);
}); function clickHandler1(e){
console.log("clickHandler1");
}
function clickHandler2(e){
console.log("clickHandler2");
}

仅仅打印出来事件1了。

事件的目标

js代码
$(document).ready(function(){
$("body").bind("click",bodyHandler);
$("div").bind("click",divHandler);
}); function bodyHandler(event){
console.log(event);
}
function divHandler(event){
console.log(event);
}

HTML代码

 <body>
<div style="width:300px;height:300px;background-color:aqua">
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
</ul>
</div>
</body>

点击div后,div的事件是

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxlc3MyMDE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

同一时候该事件也触发了body的点击


并且点击一次出来两个点击事件:

发生了事件冒泡。

事件的目标并不同。currentTarget指向body是由于给body设置的监听事件。而target是div是由于,是div触发的点击事件。这是事件冒泡。
对于当前div和父级body。假设仅仅想让div响应点击事件,能够阻止事件冒泡


事件的冒泡

在网上找到一段解释时间冒泡的:
在一个对象上触发某类事件(比方单击onclick事件),假设此对象定义了此事件的处理程序。那么此事件就会调用这个处理程序,假设未定义此事件处理程序或者事件返回true。那么这个事件会向这个对象的父级对象传播。从里到外,直至它被处理(父级对象全部同类事件都将被激活),或者它到达了对象层次的最顶层。即document对象(有些浏览器是window)。



打个比方说:你在地方法院要上诉一件案子,假设地方没有处理此类案件的法院,地方相关部门会帮你继续往上级法院上诉。比方从市级到省级,直至到中央法院。终于使你的案件得以处理。

jQuery防止事件冒泡的方法:
1、event.stopPropagation();阻止父级的冒泡事假
2、event.stopImmediatePropagation();阻止全部冒泡事件

<span style="font-size:24px;">function divHandler(event){
console.log(event);
event.stopPropagation();
}</span>

这样。控制台仅仅打印了div的响应事件,没有body的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxlc3MyMDE1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


event.stopImmediatePropagation()也非常好理解。阻止全部的事件冒泡。


自己定义事件

HTML文件

 <head>
<meta charset="UTF-8">
<script src = "jquery-2.1.4.min.js"></script>
<script src = "CustomEvent.js"></script>
<title>Document</title>
</head>
<body>
<button id="ClickMeBtn">ClickMe</button>
</body>
JS文件
<span style="font-size:24px;">var ClickMeBtn;
$(document).ready(function(){
ClickMeBtn = $("#ClickMeBtn");
ClickMeBtn.click(function(){
var e = jQuery.Event("MyEvent");
ClickMeBtn.trigger(e);
}); $(ClickMeBtn).bind("MyEvent",function(event){
console.log(event);
})
});</span>


控制台:新类型的事件MyEvent


[jQuery] 选择器和事件的更多相关文章

  1. jQuery选择器和事件

    选择器 常用事件 绑定与解除绑定 事件目标与冒泡 自定义事件

  2. JQuery选择器,事件,DOM操作,动画

    JQuery是一个JavaScript代码库,或者是JavaScript框架: 1.选择器:(和CSS选择器一致) 基本选择器:ID选择器$('#div1');Class选择器('.div1');标签 ...

  3. jQuery选择器与事件学习笔记

    层次选择器:  $("div li")获取div下的所有li元素(后代.子.子的子......)  $("div>li")获取div下的直接li子元素.  ...

  4. 前端(jQuery)(2)-- JQuery选择器和事件

    1.选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  5. jQuery选择器、事件、节点、动画效果

    一.选择器  基本选择器:    标签选择器:  $("h1").css()    类选择器:  $(".c").css()    id选择器:  $(&quo ...

  6. JQuery(选择器、事件、DOM操作)

    一.jQuery简介 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 库位于一个 JavaScript 文件中,其中包含了所有 ...

  7. jQuery 学习01——定义、安装引用、语法、选择器及事件

    什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多"的JavaScript库. jQuery库包含以下功能: HT ...

  8. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  9. jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器

    jQuery 效果函数 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选元素的所有排队函数( ...

随机推荐

  1. Android nomedia 避免图片等资源泄露在系统图库其中

    总结 Android nomedia 避免文件泄露在系统图库和系统铃声中 在应用开发中 项目的图片总是被系统的图库收录了 避免图片被系统图库收录的发现有2个方法 第一种针对图片 将 .png为后缀的图 ...

  2. 数据结构 - 归并排序(merging sort) 具体解释 及 代码

    归并排序(merging sort) 具体解释 及 代码 本文地址: http://blog.csdn.net/caroline_wendy 归并排序(merging sort): 包括2-路归并排序 ...

  3. 2016.3.17__ JavaScript基础_1__第十二天

    Javascript基础 首先说声抱歉. 今日涉及内容难易度不统一,所以很多比較基础的属性直接通过思维导图展示了. 同一时候须要注意,今日思维导图中的内容和笔记中并非一一相应的,请读者自行对比查看. ...

  4. Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)

    在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1.点击查看2).虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的. 本文演示如何使用 ...

  5. Pycharm使用入门

    Python安装与Pycharm使用入门 一.安装Python 1.Linux下安装 一般系统默认已安装2.6.6版本,升级成2.7版本, 但 2.6 不能删除,因为系统对它有依赖,epel源里最新的 ...

  6. BZOJ 4241 分块

    思路: 考虑分块 f[i][j]表示从第i块开头到j的最大值 cnt[i][j]表示从第i块开始到序列末尾j出现了多少次 边角余料处理一下就好啦~ //By SiriusRen #include &l ...

  7. Python写99乘法表

    #!/usr/bin/python# -*- encoding:utf-8 -*- for i in range(1,10):    s=''    for j in range(1,i+1):    ...

  8. poj 2828 Buy Tickets【线段树 单点更新】

    倒着插,先不理解意思,后来看一篇题解说模拟一下 手动模拟一下就好理解了----- 不过话说一直写挫---一直改啊----- 好心塞------ #include <cstdio> #inc ...

  9. 0-NULL-nullptr

    NULL In C A null-pointer constant is an integral constant expression that evaluates to zero (like 0 ...

  10. C/C++中的函数指针

    C/C++中的函数指针 一.引子 今天无聊刷了leetcode上的一道题,如下: Median is the middle value in an ordered integer list. If t ...