`
llyzq
  • 浏览: 577551 次
  • 性别: 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>

分享到:
评论

相关推荐

    Event-handlers.zip_JavaScript/JQuery_JavaScript_

    Visibility

    JAVA_javabook.rar_JavaScript/JQuery_Java_

    JAVA记事本源代码 import java.awt.* import java.awt.event.* import java.text.* import java.util.* import java.io.* import javax.swing..

    Professional XMPP Programming with JavaScript and jQuery.pdf

    The book also covers XMPP programming related topics such as application design, event handling, and combining simple protocol elements into a greater whole. Along the way, a few web programming ...

    最新 jQuery 1.7正式发布(附带1.6中文API)

    另外,在jQuery 1.7中移除了event.layerX和event.layerY这两个属性,以及jQuery.isNaN()和jQuery.event.proxy()方法,分别用event.originalEvent.layerX and event.originalEvent.layerY、jQuery.isNumeric()、...

    jQuery经典入门教程(绝对详细)

    上边的效果是点击文档中所有a标签时将弹出对话框,$("a") 是一个jQuery选择器,$本身表示一个jQuery类,所有$()是构造一个jQuery对象,click()是这个对象的方法,同理$(document)也是一个jQuery对象,ready(fn)是$...

    jQuery详细教程

    您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中: $(document).ready(function(){ --- jQuery functions go here ---- }); 这是为了防止文档在完全加载(就绪)之前运行 jQuery...

    jQuery-Cross2:jQuery BeforeAfter插件

    jQuery Cross2 只是另一个基于jQuery的图像差异工具,用于创建动画,可自定义的图像比较滑块以查看图像之前和之后。... script src =" /path/to/jquery.event.drag.min.js " &gt; &lt;/ script &gt; &lt; script src

    javascript和jquery分别实现用户登录验证

    在上一篇文章//www.jb51.net/article/83504.htm中,用javascript实现了用户验证,但并没有对密码进行验证,这次追加了这个功能,并分别用javascript和jquery实现。 一.用jquery的ajax实现的关键代码 实现如下 /*...

    Beginning JavaScript and CSS Development with jQuery

    The jQuery JavaScript framework is a rising star in the world of web development. JavaScript frameworks in general have grown to become immensely popular in the past few years in parallel with the ...

    jquery.get-word-by-event:jQuery GetWordByEvent插件

    script type =" text/javascript " src =" jquery.get-word-by-event.js " &gt; &lt;/ script &gt; 例子 $ ( 'p' ) . getWordByEvent ( 'click' , function ( e , word ) { alert &#40; 'You have clicked "' + ...

    jquery.event.fastfix:jquery.event.fix 的嵌入式回流友好替代品

    jquery.event.fastfix jquery.event.fix的内部结构可能会在某些事件期间导致回流。 这个库提供了一个使用 ES5 getter 来避免这个问题的替代品。 代码基本上是 fastfix 的独立副本,支持AMD / CommonJS和一些小的...

    C#自动完成功能

    &lt;script src="JS/jquery-1.4.1.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script src="JS/jquery-ui.min.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script src="JS/jquery.ui.datepicker-zh-...

    LauraDrysdale93.github.io

    script src =" js/jquery.event.move.js " type =" text/javascript " &gt; &lt;/ script &gt;&lt; script src =" js/jquery.twentytwenty.js " type =" text/javascript " &gt; &lt;/ script &gt;&lt; link rel =...

    shreyakalra.github.io

    script src =" js/jquery.event.move.js " type =" text/javascript " &gt; &lt;/ script &gt;&lt; script src =" js/jquery.twentytwenty.js " type =" text/javascript " &gt; &lt;/ script &gt;&lt; link rel =...

    jquery鼠标移动特效

    &lt;script src="js/jquery-3.2.1.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript "&gt; var OX = $('&lt;div class="x"&gt;&lt;/div&gt;'); var OY = $('&lt;div class="y"&gt;&lt;div&gt;'); $('body').append(OX); $('body').append...

    jQueryAPI.rar_event

    jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the ...

    jquery插件使用方法大全

    正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于...

    SafeProxy:将所有javascript函数设置为“安全”。 函数中的异常不会阻止您的其他代码运行

    // A simple example use case for SafeProxy: // - binding several event handlers to the same event// - you don't want one failing event handler to prevent other handlers from responding to that event....

    jquery 最新版框架下载(1.32-1.8.3)

    jQuery是JavaScript语言的一个新的资源库(框架) 为方便大家使用将jquery1.7 中文手册打包到里面了 jQuery能快速,简洁的使用HTML documents, handle events, perform animations,并且能把Ajax交互应用到网页,jQuery...

    jquery-event-key:返回键盘按键值

    jquery-event-key 返回 键盘事件触发时对应的按键值 ###使用方法 $("#test").onkeydown(function(event){ var realKey = $.realKey(event); console.log(realKey); });

Global site tag (gtag.js) - Google Analytics