`

jQuery中的事件处理

阅读更多

1.页面载入完毕响应事件

所谓页面载入完毕是指DOM元素载入就绪了,能够被读取和操作了。

①jQuery中的$(doucument).ready()事件

ready(fn)是jQuery事件模块中最重要的一个函数。这个方法可以看作是对window.onload注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪时立刻调用所绑定的函数,而几乎所有的javaScript函数都是需要在那一刻执行。

ready(fn)  返回值:Object  参数-fn:要在DOM载入就绪时执行的参数Function   当DOM载入就绪时绑定一个要执行的函数

而它有一种很简单的缩写形式$(document).ready(function(){}) => $(function(){})

②window.onload()事件和$(document).ready()事件的比较

window.onload()=function(){}

如果使用多个window.onload(),则只有最后一个绑定的函数能被执行,它将覆盖前面所有window.onload()绑定的函数。

如果使用多个$(),则它们都能被执行。

需要注意的是如果<body onload> body标签的onload事件已经注册了某个函数  则$()事件注册的函数将不会被执行

 

2.绑定与反绑定事件监听器

①绑定事件

⑴bind(type,[data],fn)函数

就是将某函数与某元素的某事件绑定在一起  $("#id").click(function(){})就是将一个匿名函数与id元素的click事件绑在一起

但上面的例子其实只是缩写形式,因为其是简单常用的事件绑定,正规写法应如下:

$("#id").bind("click",[data],function(){})

bind(type,[data],fn)  返回值:Object  参数-type:事件类型String data:可选,作为event.data属性值传递给后面fn的实参Object  fn:绑定到事件上的函数Function

⑵为处理函数传递参数

这里用到bind()函数的第二个参数及event.data属性为fn函数传递参数

<input id="Text2" type="text" />

 $("#Text2").bind("click",{first:"1",second:"2"},function(event){

    if(event.data.first=="1"){$(this).val("欢迎光临")}

    if(event.data.second=="1"){$(this).val("")}

    });

    })

第二个参数为一个json对象,在fn函数中通过event.data通过键名获得参数值

⑶阻止浏览器默认的行为

有时bind绑定的函数会与浏览器默认的操作冲突,这时如果想阻止浏览器默认的操作,只需在fn后面加一句return false;

$("form").bind("submit",function(){return false;})

②反绑定事件

就是解除与某元素的某事件绑定在一起的某函数

unbind([type],[fn名])  返回值:Object  参数-type:事件类型String fn名:要被解除绑定的函数名Function

以上俩参数都是可选参数   如果参数为空,就是解除所有匹配元素的所有事件所绑定的函数

$(function(){$("#btn1").click(function(){

$("input[type=text]").unbind()})

})

单击btn1后,解除所有为type=text文本框的事件绑定的所有函数

③一次性的事件绑定

就是为某元素的某事件所绑定的某函数只能被执行一次

one(type,[data],fn)  返回值:Object  参数-type:事件类型String  data:可选,作为event.data属性值传递给后面fn的实参Object  fn:绑定到事件上的函数Function

使用与bind()函数一致,不同之处就是one里的fn只能被执行一次。

 

3.事件触发器

上述绑定的一些函数,需要用户执行一定的操作才会被执行,如click事件绑定的函数需要用户单击相应的元素才会被执行。但事件触发器可以用代码模拟用户的操作动作进而执行事件所绑定的函数,而不需要用户进行某些操作。

trigger(type,[data])  返回值:Object  参数-type:事件类型String  data:可选,传递给所触发的事件所绑定的函数的实参Array(是一个javascript数组)     触发所匹配的元素的某类事件所绑定的所有函数,当这类事件与浏览器的默认操作冲突时该事件触发器会执行浏览器默认的操作

<input id="Text1" type="text" value="输入用户名" />

<input id="Text2" type="text" />

$(function(){$("#Text1").bind("click",function(){$(this).val("")})})

$(function(){$("#Text2").click(function(event,pamas1,pamas2)

{$(this).val("trigger事件触发器"+pamas1+pamas2)})

})

$(function(){$("input[type=text]").trigger("click",["1","2"])})

如上代码,虽然为俩文本框的单击事件绑定了函数,可最后一句代码也为这俩文本框的单击事件设置了触发器,所以不需要用户单击相应的文本框就能执行它们的单击事件所绑定的函数。另外该触发器还为它所触发的函数传递了参数,是一个javascript数组,可以在Text2的单击函数里看到参数的获得。

trigger函数所触发的事件与浏览器的默认操作冲突时该事件触发器会执行浏览器默认的操作,而triggerHandler函数则不会执行浏览器默认的操作。

triggerHandler(type,[data])  与trigger的使用一致

 

4.事件的交互处理

①hover:模仿鼠标悬停

hover(over,out)  返回值:Object  参数-over:鼠标移到元素上触发的函数Function out:鼠标移出元素触发的函数Function

<input type="text" id="hover1" /><span id="hoverpd" style="display:none;">判断用户输入</span>

$(function(){$("#hover1").hover(function(){

    $("#hoverpd").show();},function(){

    $("#hoverpd").hide();})

    })

②toggle:多次单击的循环响应

为匹配的元素的单击事件添加许多绑定函数,这些函数随着不停的单击该元素而循环执行

toggle(fn1,fn2,fn3...)  返回值:Object  参数-fn1,fn2,fn3...要循环的函数Function

<input type="button" id="toggle1" value="toggle"/>

var i=0;

    $(function(){$("#toggle1").toggle(function(){i++;$("#hover1").val(i)},

    function(){i=i+2;$("#hover1").val(i)})

    })

 

5.jQuery的内置事件类型

①jQuery内置事件函数的两种声明方式

不带参数的事件函数-事件类型名()   模拟了用户的操作

带参数的事件函数-事件类型名(事件函数)

$($("#id").click(function(){}))   带参数的事件函数

$($("#id").click(function(){}); $("#id").click();)  不带参数的事件函数-不单击#id也会执行相应函数 即模拟了用户操作

②jQuery内置事件类型分类

⑴浏览器相关事件

error(fn)  匹配元素发生错误时触发某函数,error事件没有标准,如当图像src无效时会触发图像的error事件

load(fn)   匹配元素加载完后触发某函数,如window是在所有DOM对象加载完才触发,其他单个元素是在单个元素加载完后触发

unload(fn)

resize(fn)  匹配元素改变大小时触发某函数

scroll(fn)   滚动条发生变化时触发

⑵表单相关事件

change(fn) 在匹配元素失去焦点时触发,也会在元素获得焦点后触发

select(fn)   当用户在文本框中选中某段文字时触发

submit(fn)  提交表单时触发

⑶键盘操作相关事件

keydown(fn)  键盘按下时触发

keypress(fn)  键盘按下又弹起时触发  顺序是keydown->keyup->keypress

keyup(fn)  键盘弹起时触发

⑷鼠标操作相关事件

click(fn)  顺序是mousedown->mouseup->click

mousedown(fn)

mouseup(fn)

dblclick(fn)

mouseover(fn)

mouseout(fn)

mousemove(fn)   在匹配元素上移动时触发,事件处理函数会被传递一个变量--事件对象(其clientX,clientY属性代表鼠标坐标)

⑸界面显示相关事件

blur(fn)  匹配元素失去焦点时触发  即可是鼠标 也可使Tab键

focus(fn)

分享到:
评论

相关推荐

    详解jQuery中的事件

    jQuery中的事件处理是其强大的特性之一,它简化了JavaScript中原始的事件处理方式,并提供了更多的功能和灵活性。本文将深入探讨jQuery中事件处理的核心概念、方法以及常见的应用场景。 首先,jQuery提供了一种更加...

    jquery鼠标滚轮事件

    在JavaScript的世界里,jQuery库为开发者提供了极大的便利,特别是在处理DOM操作和事件处理上。"jQuery鼠标滚轮事件"是一个非常实用的功能,它允许我们监听并响应用户使用鼠标滚轮时的操作,以此来实现诸如页面滚动...

    JQuery绑定事件

    **jQuery绑定事件**是JavaScript库jQuery中的核心功能之一,它极大地简化了DOM元素事件处理的流程,使得开发者能够更加高效地编写代码。在JavaScript原生语法中,为元素添加事件监听器通常涉及到`addEventListener`...

    jQuery 选择器 操作DOM 事件处理 动画基础

    jQuery选择器 jQuery操作DOM jQuery事件处理 jQuery动画基础

    基于JQUERY的图片处理类

    在IT行业中,jQuery是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。在给定的标题“基于JQUERY的图片处理类”和描述中,我们可以推断这是一个利用jQuery进行...

    为jQuery添加自定义事件机制

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。本文将深入探讨如何为jQuery添加自定义事件机制,这将帮助开发者扩展jQuery的功能,实现更加个性化的...

    jquery事件

    **jQuery事件** ...通过理解并熟练运用这些jQuery事件处理机制,开发者可以构建出更加响应用户交互、高效且易于维护的网页应用。无论是简单的按钮点击还是复杂的用户界面交互,jQuery都能提供强大的支持。

    jQuery1.12.4+jQuery中文手册.rar

    jQuery 是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。在本压缩包中,我们有两个版本的jQuery核心库文件:`jquery-1.12.4.js` 和 `jquery-1.12.4.min.js`。前者是未压缩...

    jquery.hotkeys键盘事件处理插件DEMo

    《jQuery.hotkeys键盘事件处理插件DEMO深度解析》 jQuery.hotkeys是一个强大的插件,专为处理键盘事件而设计,使得开发者可以轻松地监听并响应用户按下特定按键的组合。这个插件由John Resig创建,是jQuery库的一个...

    jquery监听鼠标滚轮事件+js监听滚轮事件

    jQuery库提供了一种简洁的方式来处理DOM元素上的事件,包括滚轮事件。要监听滚轮事件,可以使用`$(element).on('mousewheel', callbackFunction)`或者`$(element).on('DOMMouseScroll', callbackFunction)`。这是...

    jquery 中文帮助文档

    jQuery的事件处理比原生JavaScript更加直观。例如,`$(selector).click(function(){...})`定义点击事件,`$(document).ready(function(){...})`确保在页面加载完成后执行代码。还可以使用`.on()`和`.off()`方法动态...

    jquery鼠标滚轮事件支持插件

    在原生的jQuery库中,虽然提供了丰富的事件处理功能,但并没有直接支持鼠标滚轮事件。因此,开发者通常需要借助如“jquery-mousewheel”这样的插件来实现这一功能。 描述中提到“直接引用即可使用”,这意味着该...

    jQuery带事件记录的多功能日历

    jQuery是一款轻量级的JavaScript库,简化了HTML文档遍历、事件处理、动画设计和Ajax交互。通过使用jQuery,开发者能够以更少的代码实现更多的功能,提高了开发效率和用户体验。在这款日历插件中,jQuery扮演了核心的...

    jQuery事件处理的特征(事件命名机制)

    jQuery作为一个流行的JavaScript库,极大地简化了在网页中进行事件处理的方式。jQuery事件处理具有几个核心特征,...在实际应用中,合理使用jQuery事件处理特性,既能保持代码的简洁性,又能提升代码的可维护性和性能。

    jQuery为动态生成的select元素添加事件的方法

    3. jQuery中的事件委托技术:为了解决动态元素的事件处理问题,jQuery引入了一种名为“事件委托”的技术。事件委托允许我们将事件监听器绑定到一个父级元素上,而不是直接绑定到目标元素上。这样,即使目标元素是...

    jQuery中文文档1.8和1.4的chm文档

    jQuery以其简洁的API和强大的功能,极大地简化了DOM操作、事件处理、动画效果以及Ajax交互等任务,使得网页动态化变得更加容易。 在jQuery 1.8版本中,引入了一些关键更新和改进,如: 1. **$.ajax()** 方法的增强...

    jquery监听DIV的事件

    首先,理解jQuery中的事件处理是非常重要的。jQuery提供了丰富的API来绑定和触发DOM元素上的事件。在jQuery中,我们可以使用`.on()`方法来监听DOM元素的事件。例如,如果我们想要监听一个ID为"myDiv"的DIV元素的点击...

    jquery快速学三(事件与动画)

    通过以上对jQuery事件处理和动画效果的讲解,相信你已经对这两个主题有了全面的理解。结合实际的HTML文档,不断练习和探索,你将能熟练运用jQuery,提升网页交互体验。在实践中,不断学习,持续进步,是成为优秀的...

    jQuery中文API

    jQuery因其简洁的语法和强大的功能,在Web开发领域广泛应用,尤其是在处理DOM操作、事件处理、动画效果以及Ajax交互等方面。以下是关于jQuery API的详细知识点: 1. **选择器(Selectors)**:jQuery的核心在于其...

Global site tag (gtag.js) - Google Analytics