一:JQuery 对象和 Dom 对象

在使用 JQuery 过程中,我们一般(也是绝大多数情况下,除非我们使用了第二个框架)只有两类对象,即:JQuery 对象和 Dom 对象。Dom 对象指的是普通的 JavaScript 对象,而 JQuery 对象则是包装 Dom 对象后产生的对象。在声明变量的时候,出于规范,我们一般在变量名字前加一个 $ 号以标记它是一个 JQuery 对象,如下:

var $var = … // JQuery 对象

var var = …   // dom 对象

但是,后者也可以用来声明 JQuery 对象。

特点:

1:只有 JQuery 对象才能使用 JQuery 方法;

2:Dom 对象则使用原生的 JavaScirpt 方法;

如何判断一个对象是 JQuery 对象?如下:

1:JQuery 对象是一个数组对象;

2:它具备 JQuery 对象的属性和方法;

 

1.1 JQuery 对象转换成 Dom 对象

上面我们说到:JQuery 对象是一个数组对象。那么,实际,得到 [index] 或者使用 get(index) 方法,就能得到其 Dom 对象。如:

var $me= …;

var me1=$me[0];

var me2=$me.get(0);   // me1 == me2

 

1.2 Dom 对象转换成 JQuery 对象

简单了,只要使用 JQuery() 方法就能转换,即:

var domTemp=…;

var $me1 = JQuery(domTemp);

var $me2 = $(domTemp);   // $me1 == $me2

 

二:JQuery 中的事件

在 JQuery 中,可以使用 bind 方法来为元素绑定事件,该方法的声明如下:

bind( type [, data], fn)

第一个参数:事件类型,如 click,blue;

第二个参数:成为 event.data 属性值,在事件处理器方法中,作为参数传递进来;

第三个参数:事件处理器方法;

<div id="m">abc</div>
<script src="scripts/jquery.min.js"></script>
<script language="javascript">
    $("#m").bind("click", "theValue", function(e){
        alert(e.data);
    });
</script>

上面的代码,是一个完整的例子,在这个例子中,我们可以看到 e.data 的值就是 theValue。

2.1 事件对象

在上文中,我们看到 bind 方法的第三个参数事件处理器的参数 e,它俗称 事件对象,即 event.data 中的 event。虽然听上去很高端,但其实跟普通的方法参数没有任何区别。事件对象有一些重要的属性,这里主要强调下其 target 属性就是引发当前事件的 Dom 对象,即 e.target 就是 this(见下文 this 的函数),如下:

 

2.2 JQuery 和 Dom 对象的互转实例

在上面的这个例子中,我们再拓展一下,来看看 JQuery 对象和 Dom 对象之间的互转:

$("#m").bind("click", "theValue", function(e){
    var me = this;
    var $me1 = $(this);        // 也可以使用 var $me2 = $(me);
    var domMe1 = $me1[0];    // 也可以使用 var domMe2 = $me1.get(0);
    alert(e.data);
});

首先,this 是什么,它永远指的携带当前事件的那个 Dom 对象,于是,上文中的两个转换就可以看到效果了,如图:

观察其属性,上面是一个典型的 Dom 对象。

再看 $me1:

可以看到,这是一个典型的 JQuery  对象。

上文中,我们也说了,JQuery 对象是一个数组对象,而把它转为 Dom 对象,只需要使用 $me1[0] 或者 $me1.get(0) 就可以了,如下:

或者:

 

2.2 自定义事件

如下可以注册一个自定义事件:

$("#m").bind(“myclick”, function(){

  

});

出发它,则使用:

$("#m").trigger(“myclick”);

 

结尾说一个之前没注意的地方:onload 事件不能同时指定两个事件处理器,但是 ready 事件是可以的。

JQuery中的对象和事件的更多相关文章

  1. jQuery中异步操作对象Deferred

    以下介绍一下jQuery中Deferred对象的使用: 1. 通过$.Deferred生成一个deferredObj对象; 2. deferredObj.done()指定操作成功时的回调函数; 3. ...

  2. jQuery中ready与load事件

    jQuery中ready与load事件(来自慕课网) jQuery有3种针对文档加载的方法 $(document).ready(function() { // ...代码... }) //docume ...

  3. jquery中交替点击事件toggle方法的使用示例

    jquery中交替点击事件toggle方法中有两个参数,分别是要交替执行的事件.如果不传参默认是显示隐藏功能,下面有个不错的示例,感兴趣的朋友可以参考下 复制代码代码如下: $('#clickId‘) ...

  4. jquery中关于对象类型的判断原理

    class2type[ core_toString.call(obj) ] jquery中关于对象类型的判断原理 jquery源码中关于类型判断的工具函数为type,调用方法为$.type()或者jQ ...

  5. jquery中怎样防止冒泡事件

    jquery中怎样防止冒泡事件 1.利用event.stopPropagation() 2.利用return false 3.利用event.preventDefault()

  6. jquery中event对象属性与方法小结

    JQuery事件中的Event属性是经常性的被忽略的.大多数时间你的确不怎么用它,但有些时候它还是它还是有作用的.如获知触发时用户的环境(是否按了shift etc).每个浏览器对event都有不同的 ...

  7. jquery中ajax的相关事件汇总

    Jquery ajax事件分类 (一) 局部事件 local events 局部事件:在单个Ajax请求对象中绑定的事件,每个 Ajax 请求对象能够依据须要绑定自己的局部事件 .局部事件仅仅会被那个 ...

  8. jQuery中四个绑定事件的区别 on,bind,live,delegate

    1.jQ操作DOM元素的绑定事件的四种方式       jQ中提供了四种事件监听方式,bind.live.delegate.on,对应的解除监听的函数分别是unbind,die,undelegate, ...

  9. jQuery中json对象与json字符串互换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj); 根据“|”把字符串变成数组.spli ...

随机推荐

  1. Vue常用模板语法

    常用模板语法   本篇将在上一篇的基础上记录文本渲染.表达式.过滤器以及常用指令的简单用法. 一.文本渲染 Vue支持动态渲染文本,即在修改属性的同时,实时渲染文本内容.同时为了提高渲染效率,也支持只 ...

  2. 【BZOJ】3456: 城市规划(多项式求ln)

    题解 在我写过分治NTT,多项式求逆之后 我又一次写了多项式求ln 我们定义一个数列的指数型生成函数为 \(\sum_{i = 0}^{n} \frac{A_{i}}{i!} x^{i}\) 然后这个 ...

  3. 2018年长沙理工大学程序设计竞赛 J - 杯子

    题意: 链接:https://www.nowcoder.com/acm/contest/96/J一天durong同学买了一个无限长的杯子,同时买了n个球,并且标号为1,2,3......n,duron ...

  4. 将 Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS

    将 Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS   Ubuntu 18.04 LTS(Bionic Beaver)即将发布, 如果您正在使用Ubuntu 16.04LT ...

  5. Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

    写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...

  6. 004.Zabbix3.x-Server服务端安装

    一 环境基础 1.1 部署基础环境 部署Zabbix需要LAMP或LANP环境,数据库可以为MySQL或者MariaDB.硬件及存储条件按需配置. 1.2 常见依赖列表 Web前端需要支持的软件环境如 ...

  7. java集合之vector容器

    学完ArrayList和LinkedList之后,我们接着学习Vector.第1部分 Vector介绍第2部分 Vector数据结构第3部分 Vector源码解析(基于JDK1.6.0_45)第4部分 ...

  8. Codeforces Round #373 (Div. 2) B. Anatoly and Cockroaches 水题

    B. Anatoly and Cockroaches 题目连接: http://codeforces.com/contest/719/problem/B Description Anatoly liv ...

  9. Chrome中使用老的标题栏界面

    Chrome 69中启用了新的UI界面,看着更加秀气了. 但新UI一个不好用的地方是标签栏太高了,留给windows标题栏的空白太小,导致拖动窗口位置非常不方便,如下是一个解决方法: 在地址栏输入: ...

  10. LPC43xx OTP