详细说明jQuery中的事件

一般介绍

jQuery增加并扩展了基本的事件处理机制,它不仅提供了更优雅的事件处理语法,而且极大地提高了事件处理能力。

jQuery中的事件


加载DOM

在jQuery的$(document)。Ready()方法用于Javascript取代在window.onload方法,但也有一些不同点

1。定时执行

例如,我们有一个有很多图片的网页。

美元的方法(文件)。Ready()可以执行在网页DOM树被加载,并在window.onload方法必须在加载DOM树和加载图片执行。

如果我们使用jQuery,我们希望在执行使用加载()方法之后加载整个页面。

下面两段代码的功能是相同的。


jQuery
$(窗口)加载(函数(){)
代码1
});

在window.onload =函数(){
代码2
};


2,多次使用

Javascript的onload事件只能保存一个引用一个函数在一个时间,和$(document)。Ready()可以节省超过一


函数一(){
警报(1);
}
函数2(){
警报(2');
}

在window.onload =一;
在window.onload =两(2); / /只
jQuery
$(文档)Ready(函数(){)
(一);
});
$(文档)Ready(函数(){)
(二);
})两个()和两个()都被执行。



3,速记法

$(文档)Ready(函数({)});可以缩写为$(函数(){ });

事件绑定

绑定()函数的语法:绑定(类型,数据},FN)

第一个参数是事件类型。

第二个参数是可选参数,一个额外的数据对象,是一个event.data属性值传递给事件对象。

第三个参数是用于绑定的处理函数。

例如,有两个div,第二个div隐藏,当我们单击第一个div时,第二个div显示





$(函数(){())
$(# DIV1)。Bind(听到咔哒声,函数()){
$(这个);
});

});



添加功能,如果格式显示当点击DIV1,隐藏它,否则它会显示它


$(函数(){())
$(# DIV1)。Bind(听到咔哒声,函数()){
如果($(。))((可见)){
$(这个);
其他{ }
$(这个);
}
});
});



速记:


$(# DIV1)。Click(function(){)
如果($(。))((可见)){
$(这个);
其他{ }
$(这个);
}
})


综合事件

1、悬停()方法

它用来模拟光标的悬停事件,当光标移动到元素时,它触发第一个函数,当光标移出元素时,它触发第二个函数。


$(# DIV1)。Hover(function(){)
$(这个);
}函数(){()
$(这个);
});


2,切换()方法

它用来模拟鼠标的连续点击事件。当鼠标单击第一个元素时,它会触发第一个函数。当鼠标单击相同的函数时,它触发第二个函数。


$(# DIV1)。Toggle(function(){)
$(这个);
}函数(){()
$(这个);
});


防止事件冒泡并防止默认行为。

1,防止事件冒泡。

里面()方法

2。防止违约行为

PreventDefault()方法

注意:1、在jQuery中返回false是为了防止事件冒泡并防止默认行为。

2,jQuery不支持事件捕获

事件对象的属性

1、event.type

改变方法的效果是获得事件的类型。


$(# DIV1)。Click(功能(EV){
警报(类型);
})


2,event.target

获取触发事件的元素


$(# DIV1)。Click(功能(EV){
警报(EV。目标。ID); / / DIV1
})


3、event.relatedtarget

把相关的元素

4、event.pagex和event.pagey

获取光标相对于页面的坐标和y坐标。


$(# DIV1)。Click(功能(EV){
警报(ev.pagex + ',' + EV。pagey); / / 275181
})


5、event.which

该方法的功能是在鼠标单击事件中获取鼠标左、中、右键;键盘事件中获取键盘的键。


$(# DIV1)。Click(功能(EV){
1个鼠标左键,2个在鼠标,3个是鼠标右键。
})


删除事件

Unbind()方法的语法:解除绑定({型},{资料});

第一个参数是事件类型,第二个参数是要删除的函数。

先看一个例子,结合DIV1以下事件


$(# DIV1)。Bind(听到咔哒声,函数()){
警报(1);
})。Bind(听到咔哒声,函数(){(){
警报(2');
})。Bind('mouseover,函数(){(){
警报(远);
})


1,如果没有参数,则删除所有绑定事件。

$(# DIV1)。Unbind(); / /删除所有事件

2,如果将事件类型作为参数提供,则只删除该类型的绑定事件。

$(# DIV1)。Unbind('mouseover '); / /删除mouseover事件

三.如果通过绑定传递的处理函数作为第二个参数,则只删除特定的时间处理函数。

模拟操作

1。常见的模拟

触发()方法可以在jQuery用来完成模拟,例如,下面的代码可以用来触发的ID的单击事件作为一个钮扣

$(# BTN)。Trigger(听到咔哒声);

2,触发自定义事件

触发器()方法不仅触发具有相同名称的浏览器支持的事件,而且还触发自定义名称的事件。


$(# BTN)。Bind('myclick功能()){
警报(1);
});
$(# BTN)。Trigger('myclick);


三.数据传输


$(# BTN)。Bind('myclick功能(事件、2,message2){)
警报(2 + message2);
});
$(# BTN)。Trigger('myclick,{1


4。执行默认操作

$(输入的)。Trigger('focus');

上面的代码触发输入元素的焦点事件,元素本身会得到焦点。

如果你只想在一个元素会触发特定的事件,而这个事件取消浏览器的默认操作,您可以使用triggerhandler()方法

其他用途

添加事件名称空间便于管理

例如,可以将具有名称空间的元素绑定的多个事件类型规范化。


$('div)。Bind(点击。插件,功能()){
警报(1);
});
$('div)。Bind('mouseover。插件功能()){
警报(2');
});
$('div)。Bind('dbclick。插件功能()){
警报(远);
});
$(按钮)。Click(function(){)
$('div)。Unbind('插件');
})


以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!