`
llyzq
  • 浏览: 585524 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript/jQuery中的Event

阅读更多

在JavaScript中,我们要常常用到Event对象来处理一些事件,但是IE和Firefox下Event对象的属性是不同的。

1.keyCode||which||charCode
      IE下支持keyCode,不支持which,charCode。
      Firefox下支持keyCode,除功能键外,其他键值始终为0,Firefox下支持which和charCode属性

2.event.srcElement||event.target
    在IE下,event对象有srcElement属性,没有target属性。在火狐下,event对象有target属性,没有srcElement属性

3.event.x,event.y||event.pageX,event.pageY
      IE下event对象有event.x,event.y属性,而Firefox下没有。Firefox下有event.pageX,event.PageY属性,而IE下没有。解决办法:
      var mx = event.x?event.x:event.pageX;

4.attachEvent()||addEventListener()
IE下支持attachEvent()方法,而Firefox下支持addEventListener()方法。
attachEvent("eventType",fun)
eventType是指事件类型,fun是指调用事件的函数
addEventListener("eventType",fun,flag)
addEventListener方法的前两个参数和attachEvent方法一样,flag参数则是一个 Boolean 值,指明该结点是否以DOM中所谓的捕捉模式来侦听事件。对于一个典型的事件侦听器来说,第三个参数应该为false(假)。

      我所知道的常用的event属性或方法就是上面那4条。上面的东西虽然不复杂,但是我会经常遗忘,jQuery则帮我们很好的解决了这些问题,我们通过jQuery无需再去判断浏览器是否支持某某属性,某某方法。

      首先看看jQuery对象有哪些属性和方法

下面是jQuery事件对象可以在扩浏览器支持的属性:

属性名称 描述 举例
type 事件类型.如果使用一个事件处理函数来处理多个事件,可以使用此属性获得事件类型,比如click. $("a").click(function(event) {

  alert(event.type);

});
target 获取事件触发者DOM对象 $("a[href=http://google.com]").click(function(event) {

  alert(event.target.href);

});
data 事件调用时传入额外参数. $("a").each(function(i) {

  $(this).bind('click', {index:i}, function(e){

    alert('my index is ' + e.data.index);

  });

});
relatedTarget 对于鼠标事件, 标示触发事件时离开或者进入的DOM元素 $("a").mouseout(function(event) {

  alert(event.relatedTarget);

});
currentTarget 冒泡前的当前触发事件的DOM对象, 等同于this. $("p").click(function(event) {

  alert( event.currentTarget.nodeName );

});

结果:P
pageX/Y 鼠标事件中, 事件相对于页面原点的水平/垂直坐标. $("a").click(function(event) {

  alert("Current mouse position: " + event.pageX + ", " + event.pageY );

});
result 上一个事件处理函数返回的值 $("p").click(function(event) {

  return "hey"

});

$("p").click(function(event) {

  alert( event.result );

});

结果:"hey"
timeStamp 事件发生时的时间戳. var last;

$("p").click(function(event) {

  if( last )

      alert( "time since last event " + event.timeStamp - last );

  last = event.timeStamp;

});

 

名称 说明 举例
preventDefault() 取消可能引起任何语意操作的事件.比如<a>元素的href链接加载,表单提交以及click引起复选框的状态切换. $("a").click(function(event){

  event.preventDefault();

  // do something

});
isDefaultPrevented() 是否调用过preventDefault()方法 $("a").click(function(event){

  alert( event.isDefaultPrevented() );

  event.preventDefault();

  alert( event.isDefaultPrevented() );

});
stopPropagation() 取消事件冒泡 $("p").click(function(event){

  event.stopPropagation();

  // do something

});
isPropagationStopped() 是否调用过stopPropagation()方法 $("p").click(function(event){

  alert( event.isPropagationStopped() );

  event.stopPropagation();

  alert( event.isPropagationStopped() );

});
stopImmediatePropagation() 取消执行其他的事件处理函数并取消事件冒泡.

如果同一个事件绑定了多个事件处理函数, 在其中一个事件处理函数中调用此方法后将不会继续调用其他的事件处理函数.
$("p").click(function(event){

  event.stopImmediatePropagation();

});

$("p").click(function(event){

  // This function won't be executed

});
isImmediatePropagationStopped() 是否调用过stopImmediatePropagation()方法 $("p").click(function(event){

  alert( event.isImmediatePropagationStopped() );

  event.stopImmediatePropagation();

  alert( event.isImmediatePropagationStopped() );

});


这些函数中  stopPropagation()  是我们最长用的也是一定会用到的函数. 相当于操作原始event对象的event.cancelBubble=true来取消冒泡.
___________________________________________________________________________
offset():获取匹配元素在当前视口的相对偏移。

返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。

position():获取匹配元素相对父元素的偏移。
返回的对象包含两个整形属性:top 和 left。为精确计算结果,请在补白、边框和填充。

<script type="text/javascript"></script><script src="cache/tag/hottags_forum_cache_jsonp.txt" type="text/javascript"></script><script type="text/javascript"></script>

分享到:
评论

相关推荐

    jquery.event.drag jquery拖动插件

    `jquery.event.drag`是jQuery的一个扩展插件,由Jörn Zaefferer开发,它是jQuery UI中的`draggable`组件的一个轻量级替代品,适用于那些不需要完整UI框架的项目。这个插件为jQuery对象添加了拖放事件处理,使得...

    JavaScript和jquery实战手册

    JavaScript和jQuery是Web开发中的两种关键技术,它们在创建交互式网页和动态用户界面方面发挥着重要作用。本实战手册旨在深入探讨这两种技术的核心概念、语法以及实际应用,帮助开发者提升技能并构建高效、响应式的...

    用标准javascript 替代jQuery.

    jQuery 的 `$` 函数返回的对象支持链式操作,而原生 JavaScript 中可以使用 `Array.prototype.forEach` 或 `for...of` 循环来遍历元素集合。 6. **动画效果** jQuery 的动画功能可以通过 CSS3 动画或者使用 `...

    jQuery/jquery-1.5.1.min.js /jquery-1.7.2.min.js等

    jQuery,一个轻量级、高性能的JavaScript库,自2006年发布以来,因其简洁易用的API而迅速成为Web开发领域中最受欢迎的库之一。在给定的压缩包文件中,包含了两个重要的版本:`jquery-1.5.1.min.js`和`jquery-1.7.2....

    Event-handlers.zip_JavaScript/JQuery_JavaScript_

    标题中的"Event-handlers.zip"表明这是一个关于JavaScript和jQuery事件处理器的专题,而"JavaScript/JQuery_JavaScript_"则进一步确认了重点在于这两种JavaScript库的交互和事件处理。描述中的"Visibility"则提示...

    jquery手册(jquery.cuishifeng.cn网页版)2

    10. **性能优化**: 使用`$(document).ready()`确保DOM加载完成后执行脚本,减少DOM操作以提高性能,使用 delegated event handling 处理大型动态内容等都是jQuery性能优化的技巧。 离线的HTML版本的jQuery手册不仅...

    jquery-1.9.1.min.js_javascript_jquery_

    jQuery 是一个强大的JavaScript库,通过提供简洁的API和广泛的兼容性,极大地简化了网页开发中的常见任务。jQuery 1.9.1.min.js 是一个压缩版的库文件,适用于生产环境,以减少页面加载时间和提高性能。无论你是初学...

    jquery-1.11.3.js 、jquery-1.11.3.min.js 【官方jquery包 js】

    在这个主题中,我们将深入探讨jQuery 1.11.3版本的核心特性及其在实际开发中的应用。 首先,jQuery 1.11.3是官方发布的一个稳定版本,它继承了jQuery一贯的易用性和兼容性,支持多种浏览器环境,包括IE6及以上版本...

    常用web开发手册css2/css3/jquery-api/javascript api/dom/html/j2ee-api/dhtml

    这个压缩包包含了Web开发中的重要手册,包括CSS2/CSS3、jQuery API、JavaScript API、DOM、HTML以及J2EE API和DHTML的相关资源,是开发者必备的参考资料。 **CSS2与CSS3** CSS(层叠样式表)用于定义网页的布局和...

    jquery-1.3.2.min.js

    总之,jQuery 1.3.2.min.js作为一款经典的JavaScript库,不仅简化了DOM操作,还带来了丰富的动画效果和便捷的AJAX功能,是Web开发中不可或缺的工具。通过学习和熟练掌握jQuery,开发者可以大大提高工作效率,创造出...

    javaScript与jQuery第十二章上机作业.zip

    JavaScript和jQuery是Web开发中的重要工具,用于创建交互式的网页和动态内容。在这个18级在校生的上机作业中,我们看到他正通过实践来深入理解和应用这两门技术。以下将详细介绍JavaScript和jQuery的一些核心知识点...

    《精通javascript+jQuery》及书中实例

    《精通JavaScript+jQuery》这本书是IT领域中针对Web前端开发的一部重要著作,它深入浅出地讲解了JavaScript和jQuery的使用技巧与实战方法。JavaScript作为网页动态效果的核心语言,而jQuery则是一个强大的JavaScript...

    jQueryUISlider.zip_JavaScript/JQuery_JavaScript_

    本文将深入探讨jQuery UI Slider插件,包括其功能、使用方法以及如何结合JavaScript和JQuery进行动态日期选择。 首先,jQuery UI Slider插件的核心特性是其直观的交互设计。它创建了一个可以左右滑动的条形控件,...

    changyongdaima.rar_JavaScript/JQuery_JavaScript_

    4. **事件处理**:jQuery 提供了如 `click(fn)` 这样的方法来绑定事件处理函数,`$(element).on("event", handler)` 用于动态绑定事件。 5. **动画效果**:jQuery 以 `.animate()` 方法为核心,可以创建复杂的动画...

    jquery-1.11.1.js 、jquery-1.11.1.min.js 【官方jquery包 js】

    总的来说,jQuery 1.11.1作为一款强大的JavaScript库,无论是在前端开发的日常工作中,还是在构建复杂交互的Web应用时,都扮演着不可或缺的角色。通过熟练掌握jQuery,开发者可以更加高效地编写出高质量的前端代码。

    jQueryPDF.zip_JavaScript/JQuery_JavaScript_

    总的来说,jQuery作为JavaScript的强力工具,大大提高了Web开发效率,"jQueryPDF.zip"中的PDF手册是学习和掌握jQuery的宝贵资源。通过深入学习和实践,开发者能够更好地利用jQuery实现交互丰富的Web应用。

    jquery.event.drag-2.0.rar

    而在jQuery的众多插件中,`jquery.event.drag-2.0`是一个专门处理拖放事件的插件,它极大地简化了在网页上实现拖放操作的复杂性。本文将深入探讨这个插件的核心概念、工作原理以及实际应用。 首先,让我们了解什么...

    五子棋(CSS + JavaScript + jQuery)

    在这个项目中,我们将探讨如何使用CSS、JavaScript和jQuery来实现一个网页版的五子棋游戏。 **CSS在网页设计中的作用** CSS(Cascading Style Sheets)是用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档...

    jQuery_API.rar_JavaScript/JQuery_Java_

    3. **事件处理(Event Handling)**:jQuery的事件处理方法如`on()`, `off()`, `click()`, `mouseover()`, `mouseout()`等,可以方便地绑定和解绑事件。`$(document).ready()`是jQuery中的常用方法,确保在文档加载...

    JavascriptKeylogger1.4.zip_JavaScript/JQuery_Python_

    标题中的"JavascriptKeylogger1.4.zip"是一个包含JavaScript Keylogger相关组件的压缩文件,而描述提到的是一个用Python编写的JavaScript Keylogger服务器。这个工具可能用于记录用户在浏览器中输入的按键信息,通常...

Global site tag (gtag.js) - Google Analytics