jQuery.bind()事件
2016-06-12 15:00
573 查看
jQuery.bind():绑定事件
参数:bind( eventType [, eventData], handler(eventObject))
eventType是一个字符串类型的事件类型,就是你所需要绑定的事件。这类类型可以包括如下:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress,
keyup, error。
eventData参数是一个可选参数,不过它在平时用的比较少。如果提供了这个参数,那么我们就能把一些附加信息传递给事件处理函数了。
Handler是用来绑定的处理数,其实也就是回调函数,处理完数据之后相应的方法。
案例1:一个简单的bind()事件
$("#id").bind("click",function(){
alert("hello!");
});
案例2:绑定多个事件
$("#id").bind("click",function(){
alert("hello!");
}).bind("mouseout",function(){
$("#id").show();
});
案例3:事件对象
$("#id").bind("dblclick",function(){
var str = "( " + event.pageX + ", " + event.pageY + " )";
$("span").text("Click happened! " + str);
})
$("p").bind("dblclick", function(){
$("span").text("Double-click happened in " + this.nodeName);
});
$("p").bind("mouseenter mouseleave", function(event){
$(this).toggleClass("over");
});
------------------------------------------------------------------
jQuery.unbind():
参数:unbind([type],[data],Handler)
unbind()事件是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。
案例1:
$(function () {
$("#LooseFocus").unbind("click", foo);
})
jQuery.one():
其实one和bind是一样,都是为了绑定事件而产生的。One与bind基本上差不多,不同的在调用 jQuery.event.add时,把注册的事件处理的函数做了一个小小的调整。One调用了jQuery.event.proxy进行了代理传入的事 件处理函数。在事件触发调用这个代理的函数时,先把事件从cache中删除,再执行注册的事件函数。这里就是闭包的应用,通过闭包得到fn注册的事件函数 的引用。
one(type,[data],fn)
bind & one
bind() 实现:
bind : function(type, data, fn) {
return type == "unload" ? this.one(type,data,fn) : this.each(function(){
//fn || data, fn && data实现了data参数可有可无
jQuery.event.add(this, type, fn || data, fn && data);
});
one() 实现:
one : function(type, data, fn) {
var one = jQuery.event.proxy(fn || data, function(event) {
jQuery(this).unbind(event, one);
return (fn || data).apply(this, arguments);
//this->当前的元素
});
return this.each(function() {
jQuery.event.add(this, type, one, fn && data);
});
javaScript 冒泡事件:
冒泡实例代码:
<body onclick="MyBodyClick()">
<div onclick="MyClickOut()">
<div onclick="MyClickInner()">
<span id="MySpan">I love JQuery!!</span>
</div>
</div>
</dody>
<script type="text/javascropt">
function MyClickOut() {
alert("outer Div");
}
function MyClickInner() {
alert("Inner Div");
}
function MyBodyClick() {
alert("Body Click");
}
$(function () {
$("#MySpan").bind("click", function (event) {
alert("I'm span");
event.stopPropagation();
});
</script>
cancelBubble() IE 的阻止冒泡事件、stopPropagation()Firefox和Chrome等其他浏览器 都是阻止冒泡
参数:bind( eventType [, eventData], handler(eventObject))
eventType是一个字符串类型的事件类型,就是你所需要绑定的事件。这类类型可以包括如下:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress,
keyup, error。
eventData参数是一个可选参数,不过它在平时用的比较少。如果提供了这个参数,那么我们就能把一些附加信息传递给事件处理函数了。
Handler是用来绑定的处理数,其实也就是回调函数,处理完数据之后相应的方法。
案例1:一个简单的bind()事件
$("#id").bind("click",function(){
alert("hello!");
});
案例2:绑定多个事件
$("#id").bind("click",function(){
alert("hello!");
}).bind("mouseout",function(){
$("#id").show();
});
案例3:事件对象
$("#id").bind("dblclick",function(){
var str = "( " + event.pageX + ", " + event.pageY + " )";
$("span").text("Click happened! " + str);
})
$("p").bind("dblclick", function(){
$("span").text("Double-click happened in " + this.nodeName);
});
$("p").bind("mouseenter mouseleave", function(event){
$(this).toggleClass("over");
});
------------------------------------------------------------------
jQuery.unbind():
参数:unbind([type],[data],Handler)
unbind()事件是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。
案例1:
$(function () {
$("#LooseFocus").unbind("click", foo);
})
jQuery.one():
其实one和bind是一样,都是为了绑定事件而产生的。One与bind基本上差不多,不同的在调用 jQuery.event.add时,把注册的事件处理的函数做了一个小小的调整。One调用了jQuery.event.proxy进行了代理传入的事 件处理函数。在事件触发调用这个代理的函数时,先把事件从cache中删除,再执行注册的事件函数。这里就是闭包的应用,通过闭包得到fn注册的事件函数 的引用。
one(type,[data],fn)
bind & one
bind() 实现:
bind : function(type, data, fn) {
return type == "unload" ? this.one(type,data,fn) : this.each(function(){
//fn || data, fn && data实现了data参数可有可无
jQuery.event.add(this, type, fn || data, fn && data);
});
one() 实现:
one : function(type, data, fn) {
var one = jQuery.event.proxy(fn || data, function(event) {
jQuery(this).unbind(event, one);
return (fn || data).apply(this, arguments);
//this->当前的元素
});
return this.each(function() {
jQuery.event.add(this, type, one, fn && data);
});
javaScript 冒泡事件:
冒泡实例代码:
<body onclick="MyBodyClick()">
<div onclick="MyClickOut()">
<div onclick="MyClickInner()">
<span id="MySpan">I love JQuery!!</span>
</div>
</div>
</dody>
<script type="text/javascropt">
function MyClickOut() {
alert("outer Div");
}
function MyClickInner() {
alert("Inner Div");
}
function MyBodyClick() {
alert("Body Click");
}
$(function () {
$("#MySpan").bind("click", function (event) {
alert("I'm span");
event.stopPropagation();
});
</script>
cancelBubble() IE 的阻止冒泡事件、stopPropagation()Firefox和Chrome等其他浏览器 都是阻止冒泡
相关文章推荐
- jquery事件的ready()方法使用详解
- jQuery学习总结之jQuery事件
- jquery 事件冒泡的介绍以及如何阻止事件冒泡
- Jquery 事件
- JQuery高级事件
- jQuery整理笔记目录
- jquery的事件
- JQuery学习系列(五)事件
- jQuery事件
- jquery各种事件触发实例
- jQuery事件详解(所有的)
- [TOP]原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别
- jQuery -- 事件
- jQuery事件-绑定.on()和解绑.off()
- jQuery事件-键盘事件
- jQuery事件-表单事件
- Jquery滚动条监听事件
- jQuery 事件总结,持续更新
- JQuery自动轮播效果,带字幕说明,带底部滚动圈圈,兼容IE7以上所有主流浏览器。(魔兽背景哟亲)
- jquery 获取和设置Select选项常用方法总结