大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先说明,你的提问本身就有问题。bind()是一个绑定事件,不是触发事件。
创新互联公司专业为企业提供阿拉尔网站建设、阿拉尔做网站、阿拉尔网站设计、阿拉尔网站制作等企业网站建设、网页设计与制作、阿拉尔企业网站模板建站服务,十多年阿拉尔做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
比如下面代码的意思是,给id为a的标签绑定一个click点击事件,当用户发生点击标签的时候触发。
bind(eventType ,function)
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 。这里需要注意的是,这里用的都是javascript里面的事件方法,而不是JQuery里面的,JQuery里面的事件方法均在JavaScript 前面多了一个“on”,比如onclick,onblur 等等。
$("#a").bind("click", function () {
alert("Hello World");
});
//绑定多个事件
$('#a').bind({
click: function() {
// do something on click
},
mouseenter: function() {
// do something on mouseenter
}
});
.bind()是直接绑定在元素上
.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。
.delegate()则是更精确的小范围使用事件代理,性能优于.live()
.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制
没啥区别,个人感觉是喜好写法问题,我刚测试了一下,没感觉有啥区别
D1:
$("#btn").bind("click",function(){
alert("test1");
});
$("#btn").bind("click",function(){
alert("test2");
});
D2:
$("#btn").click(function(){
alert("test1");
});
$("#btn").click(function(){
alert("test2");
});
这两个执行效果一样,都会依次弹出来两个对话框
我刚才又研究了一个jquery的源码,诸如click(),dblclick(),mousemove()这样的简单写法的事件绑定的都是调用的this.on(
name,
null,
data,
fn
)
这个方法进行事件绑定的,而bind()也同样是调用的这个
bind:
function(
types,
data,
fn
)
{
return
this.on(
types,
null,
data,
fn
);
},
所以说
click()只是简化写法,而且jquery的文档里也有关于这样的说明
----------------------------
以下的引用jquery文档的说明
-----------------------------------------
.bind()
方法是用于往文档上附加行为的主要方式。所有JavaScript事件对象,比如focus,
mouseover,
和
resize,都是可以作为type参数传递进来的。
jQuery还提供了一些绑定这些标准事件类型的简单方式,比如.click()用于简化.bind('click')。一共有以下这些: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()函数是jQuery 1.7之前或更早版本采用的一个用来绑定事件处理程序的函数;on()函数是jQuery 1.7版本提供的首选的用来绑定事件处理程序的函数;从1.7版本的介绍以及参数描述来看,其实这两个函数基本上用法一致,但可能在早期的版本中,bind()函数一次只能为标签对象绑定一个事件的处理程序,而on()函数则可以一次为多个不同的事件绑定处理程序。
Jquery中bind和live的区别如下:
1.bind()可以绑定多个事件,live()一次只能绑定一个事件。
区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。
2.live 目前只支持所有事件的子集,支持列表参考上面的说明。
.live 不支持liveQuery提供的“无事件”样式的回调函数。.live只能绑定事件处理函数。
.live 没有”setup”和”cleanup”的过程。因为所有的事件是委派而不是直接绑定在元素上的。
bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。其语法为:
$(selector).bind(event,data,function)
参数说明如下:
event:规定添加到元素的一个或多个事件。必需。
data: 规定传递到函数的额外数据。可选。
function: 规定当事件发生时运行的函数。必需。
示例如下:
// 当点击鼠标时,隐藏或显示 p 元素:
$("button").bind("click",function(){
$("p").slideToggle();
});