事件绑定之.bind()
.bind(eventType[,eventData],handler(eventObject))
描述:为一个元素绑定一个事件处理程序,bind()绑定方法的时候元素必须已经存在。
-eventType
string类型
一个包含一个或多个DOM事件类型的字符串,或自定义事件。多个由空格分开。
-eventData
Object类型
一个对象,它包含的数据键值对映射将被传递给事件处理程序。不常用
-handler(eventObject)
Function()类型
每当事件触发时执行的函数。
-从jq1.7开始.on()方法将事件处理程序绑定到文档的首选方法,对于更为灵活的事件绑定,可以查看.on() 或者 .delegate()事件代理。
-eventType任何字符串是合法的,如果该字符串不是一个原生的DOM事件名称,那么以自定义方式绑定处理函数,这些事件不会被浏览器调用,可以用.trigger()或.triggerHandler()来触发。
$("input").bind("custom",function(){//custom为自定义事件
$(this).val('呀改变了呢');
});
$("button").click(function(){
$("input").trigger("custom");
})
-如果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这些是.bind(eventType)标准的事件类型绑定快捷方法。
-传递一个事件类型/处理函数的数据键值对映射来绑定多个事件处理程序,例如:
$("button").bind({
click:function(){
alert("click")
},
mouseenter:function(){
alert("mouseenter")
}
})
-从一个处理函数返回false等效于同时调用事件对象中的.preventDefault()和.stopPropagation()。
$("button").bind({
click:function(event){
alert('The mouse cursor is at ('+event.pageX ','+event.pageY+')');
return false;//如果没有这句话,那么body的click事件也会执行。
}
});
$("body").click(function(){
alert("body被点击了")
})
-eventData
一个方便的使用这个参数来解决由于闭包造成的问题。例如,假设我们有两个事件处理函数都引用了相同的外部变量:
var message = 'Spoon!';
$('#foo').bind('click', function() {
alert(message);
});
message = 'Not in the face!';
$('#bar').bind('click', function() {
alert(message);
});
由于两个事件处理函数的闭包中,都引用了 message,所以,当事件被触发时,这两个事件处理都会显示 Not in the face!,了避免这个问题,可以使用 eventData 来传递信息
var message = 'Spoon!';
$('#foo').bind('click', {msg: message}, function(event) {
alert(event.data.msg);
});
message = 'Not in the face!';
$('#bar').bind('click', {msg: message}, function(event) {
alert(event.data.msg);
});
所以就可以在事件绑定的时候进行赋值操作。 第一个处理程序,现在将显示Spoon!而第二个会提醒Not in the face!
如果通过.trigger()的第二个参数像事件处理程序传递参数,是在事件发生的时候传入,而传入到 .bind() 中的 eventData 参数要求在进行事件绑定时就要事先计算好。
$('#foo').on('custom', function(event, param1, param2) {//event是默认参数 alert(param1 + "\n" + param2);});-Example
在事件处理之前,传入一些额外的数据
function handler(event) {
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)
取消默认事件并阻止冒泡
$("form").bind("submit", function() { return false; })
通过使用 .preventDefault() 方法,仅取消默认的动作,只取消默认事件
$("form").bind("submit", function(event) {
event.preventDefault();
});
通过使用 .stopPropagation() 方法,防止事件冒泡,但是默认执行默认的动作
$("form").bind("submit", function(event) {
event.stopPropagation();
});
事件绑定之.bind()的更多相关文章
- jQuery中事件绑定到bind、live、delegate、on方法的探究
1. 给页面上的某个元素绑定事件,最初采用下面的方式实现: $(‘selector’).click(function(){ //code }); 缺点: 不能同时绑定多个事件,不能绑定动态的元素. 后 ...
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
.bind(), .live(), 和 .delegate()之间的区别并不明显.但是理解它们的不同之处有助于写出更简洁的代码,并防止我们的交互程序中出现没有预料到的bug. 基础 DOM树 首先,图 ...
- jQuery事件绑定方法bind、 live、delegate和on的区别
我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 1.准备知识 当我们在开始的时候,有些知识是必须具备的: 1 ...
- JQuery事件绑定,bind与on区别
jquery事件绑定bind:向匹配元素添加一个或多个事件处理器 $(selector).bind("click",data,function); live:向当前或未来的匹配元素 ...
- jquery 事件委托三种事件绑定方式.bind(),.live(),.delegate()
http://www.ituring.com.cn/article/467# http://www.cnblogs.com/lvdabao/archive/2013/08/30/3290603.htm ...
- jQuery的三种bind/One/Live/On事件绑定使用方法
本篇文章介绍了,关于jQuery新的事件绑定机制on()的使用技巧.需要的朋友参考下 今天浏览jQuery的deprecated列表,发现live()和die()在里面了,赶紧看了一下,发现从jQ ...
- jQuery_02之元素操作及事件绑定
1.操作元素之属性: ①attr读:$("selector").attr("属性名"):=>getAttribute("属性名"):改 ...
- jQuery之元素操作及事件绑定
1.操作元素之属性: ①attr读:("selector").attr("属性名"):=>getAttribute("属性名"):改: ...
- jquery的链式操作以及事件绑定
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- sublime安装和汉化
对程序员来说,在不同的平台下有不同的IDE,网上很多教程都是使用DW,以致DW大名鼎鼎.其实,还有一些我们不为熟知的,却超级牛X的编辑器,我相信Sublime Text就是其中之一. 官方下载地址:h ...
- pagination jquery最简单的分页【无刷新和刷新都通用】
参数说明 参数名 描述 参数值 maxentries 总条目数 必选参数,整数 items_per_page 每页显示的条目数 ...
- poj3292-类素数筛选法
#include<iostream>using namespace std;const int N=1000002;int array[N]={0};int main(){ int n; ...
- base库中的BarrierClosure
说明说得很明白,就是等侍num_closures 为零的时候回调done_closure,代码也很简单,不加详述 #ifndef BASE_BARRIER_CLOSURE_H_ #define BAS ...
- CmdParse
Procedure URPOSE Uses Dos,Crt; Const VersionNum = 'V1.0 BETA'; ProgNameStr = 'NEWPROJ.EXE'; ProgName ...
- Ubuntu安装Microsoft Windows Fonts微软字体库
ttf-mscorefonts-installer包是微软的字体包, 可以直接在软件中心中找到安装,也可以通过命令安装 sudo apt-get install ttf-mscorefonts-ins ...
- 16-GDBT(MART) 迭代决策树入门教程 | 简介
转载:http://blog.csdn.net/w28971023/article/details/8240756 GBDT(Gradient Boosting Decision Tree) 又叫 M ...
- java版括号匹配检测
做一个空栈,读入字符直到结尾.如果读入一个封闭符号,空栈时报错;非空时弹出栈尾字符,如果不匹配则报错.否则读入为开放字符,压入栈中.最后如果栈空,返回true. 其中用到MyStack类,详情请见 p ...
- Jquery 解决 H5 placeholder元素问题
<style type="text/css"> .placeholder{ color: #cacaca; } </style> <script ty ...
- MYSQL 没有varchar(max)这个类型。
背景: MYSQL 中不可以用varchar(max) 这种类型列来建立表 -------------------------------------------------------------- ...