一: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. spark web ui中的skipped的含义

    顾名思义,跳出的意思啦. 例如如图: skipped的stages代表是已经执行过了.所以不需要再执行了. 如何,你有一个 testRdd.然后先做 testRdd.Filter("xxx& ...

  2. kebab HDU2883

    题意:现在有n个人要烤肉,有m个烤肉架,然后给出每个人的烤肉开始时间si,结束时间ei,以及要烤肉的串数num,还有拷一串的时间ti,然后问你能不能满足所有人的要求. 为3572的进阶题 每个人为一个 ...

  3. 利用Httponly提升web应用程序安全性(转)

    原文:http://kb.cnblogs.com/page/115136/ 随着www服务的兴起,越来越多的应用程序转向了B/S结构,这样只需要一个浏览器就可以访问各种各样的web服务,但是这样也越来 ...

  4. 使用Golang开发一个本地代理

    引言 最近需要对接一个接口,人家提供了两种调用方式,第一种是基于IE浏览器的Active,第二种是动态链接库dll.我们公司的产品不支持IE,所以只能通过调用dll来完成了. 之前我已经用Java实现 ...

  5. Java HashMap 分析四篇连载

     Java的HashMap非常的常用,本篇研究它的实现算法,最后希望计算出内存占用,性能的量化数据,然后得出什么时候使用HashMap,什么时候不能滥用的结论. HashMap实际上是一个数组,数组里 ...

  6. 闭包应用之延迟函数setTimeout

    根据HTML 5标准,setTimeout推迟执行的时间,最少是5毫秒.如果小于这个值,会被自动增加到5ms. 每一个setTimeout在执行时,会返回一个唯一ID,把该ID保存在一个变量中,并传入 ...

  7. 卡尔曼滤波(kalman)相关理论以及与HMM、最小二乘法关系

    一.什么是卡尔曼滤波 在雷达目标跟踪中,通常会用到Kalman滤波来形成航迹,以前没有学过机器学习相关知识,学习Kalman时,总感觉公式看完就忘,而且很多东西云里雾里并不能深入理解,最后也就直接套那 ...

  8. adjustPan 没作用

    onCreate里加了这个 影响了 . getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);getWindow ...

  9. Bzoj4237 cdq分治+树状数组+单调栈

    二维平面在某区域内点的问题,要么树套树,kdtree,要么就是cdq分治了.然而这题树套树和kdtree都不是很好搞的样子,于是我们就只能cdq分治了.首先把点按照横坐标x排序,在每一层我们需要算出右 ...

  10. python之sys.stdout、sys.stdin

    转自:http://www.cnblogs.com/turtle-fly/p/3280519.html 本文环境:Python 2.7  使用 print obj 而非 print(obj) sys. ...