jQuery慢慢啃之事件(七)
1.ready(fn)//当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
$(document).ready(function(){ // 在这里写你的代码...});
使用 $(document).ready() 的简写,同时内部的 jQuery 代码依然使用 $ 作为别名,而不管全局的 $ 为何。
$(function($) { // 你可以在这里继续使用$作为别名... });
2.on(events,[selector],[data],fn)//在选择元素上绑定一个或多个事件的事件处理函数。
data:当一个事件被触发时要传递event.data给事件处理函数。
$("p").on("click", function(){alert( $(this).text() );});//简单方式
function myHandler(event) {
alert(event.data.foo);
}
$("p").on("click", {foo: "bar"}, myHandler)//传递一个jison值给事件event.data中
$("form").on("submit", false)//取消提交并且取消冒泡
$("form").on("submit", function(event) {event.preventDefault();});//取消当前元素的默认动作,此处是提交
$("form").on("submit", function(event) {event.stopPropagation();});//
终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播
3.off(events,[selector],[fn])//在选择元素上移除一个或多个事件的事件处理函数
最好的做法是安装和取下使用命名空间的事件,从而使代码不会无意中删除其他代码附加事件处理程序。
$("p").off()
//删除所有的段落的事件
$("p").off( "click", "**" )
//删除委托上的所有事件var foo = function () { };//定义方法事件
$("body").on("click", "p", foo);//绑定事件
$("body").off("click", "p", foo); //删除某一个事件上的一个方法var validate = function () {};//定义事件
$("form").on("click.validator", "button", validate);//绑定具有命名空间的事件
$("form").on("keypress.validator", "input[type='text']", validate);//绑定具有命名空间的事件
$("form").off(".validator");//删除命名空间下的所有事件
4.bind(type,[data],fn)//为每个匹配元素的特定事件绑定事件处理函数
type,[data],false //false: 将第三个参数设置为false会使默认的动作失效。
$("p").bind("click", function(){ alert( $(this).text() );});//
当每个段落被点击的时候,弹出其文本。
$('#foo').bind('mouseenter mouseleave', function() {$(this).toggleClass('entered');});//
同时绑定多个事件类型
$("button").bind({//
同时绑定多个事件类型/处理程序
click:function(){$("p").slideToggle();},
mouseover:function(){$("body").css("background-color","red");},
mouseout:function(){$("body").css("background-color","#FFFFFF");}
});
function handler(event) {alert(event.data.foo);}
//事件处理之前传递一些附加的数据。
$("p").bind("click", {foo: "bar"}, handler)
$("form").bind("submit", function() { return false; })//通过返回false来取消默认的行为并阻止事件起泡。
$("form").bind("submit", function(event){event.preventDefault();});//通过使用 preventDefault() 方法只取消默认的行为。
$("form").bind("submit", function(event){event.stopPropagation();});//通过使用 stopPropagation() 方法只阻止一个事件起泡。
5.one(type,[data],fn)//为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。
$("p").one("click", function(){alert( $(this).text() );});
6.trigger(type,[data])//在每一个匹配的元素上触发某类事件。这个函数也会导致浏览器同名的默认行为的执行,如果要阻止这种默认行为,应返回false。
$("form:first").trigger("submit")//触发事件
$("p").click( function (event, a, b) {//先定义事件,在给传递带参数并且触发
// 一个普通的点击事件时,a和b是undefined类型
// 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);
$("p").bind("myEvent", function (event, message1, message2) {alert(message1 + ' ' + message2);});//定义自己的事件
$("p").trigger("myEvent", ["Hello","World!"]);//触发自定义事件
7.triggerHandler(type, [data])//这个特别的方法将会触发指定的事件类型上所有绑定的处理函数。但不会执行浏览器默认动作,也不会产生事件冒泡。
这个方法的行为表现与trigger类似,但有以下三个主要区别:
* 第一,他不会触发浏览器默认事件。
* 第二,只触发jQuery对象集合中第一个元素的事件处理函数。
* 第三,这个方法的返回的是事件处理函数的返回值,而不是据有可链性的jQuery对象。此外,如果最开始的jQuery对象集合为空,则这个方法返回 undefined
<button id="old">.trigger("focus")</button>
<button id="new">.triggerHandler("focus")</button><br/><br/>
<input type="text" value="To Be Focused"/>
$("#old").click(function(){$("input").trigger("focus");});
$("#new").click(function(){$("input").triggerHandler("focus");});
$("input").focus(function(){$("<span>Focused!</span>").appendTo("body").fadeOut(1000);});
8.unbind(type,[data|fn]])//bind()的反向操作,从每一个匹配的元素中删除绑定的事件
$("p").unbind()
//把所有段落的所有事件取消绑定
$("p").unbind( "click" )
//将段落的click事件取消绑定
删除特定函数的绑定,将函数作为第二个参数传入
var foo = function () {// 处理某个事件的代码};
$("p").bind("click", foo); // ... 当点击段落的时候会触发 foo
$("p").unbind("click", foo); // ... 再也不会被触发 foo
9.live(type, [data], fn)//给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
$('.clickme').live('click', function() {alert("Live handler called."); });//后米添加的元素依然有事件
$('body').append('<div class="clickme">Another target</div>'); $('.hoverme').live('mouseover mouseout', function(event) {// 同时绑定mouseover和mouseout事件
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
}); $("a").live({
click: function() { // do something on click},
mouseover: function() { // do something on mouseover }
});
其实.bind(), .live(), .delegate()都是通过.on()来实现的,.unbind(), .die(), .undelegate(),也是一样的都是通过.off()来实现的,
10.die//从元素中删除先前用.live()绑定的所有事件
function aClick() {
$("div").show().fadeOut("slow");
}
$("#unbind").click(function () {
$("#theone").die("click", aClick)
});
11.delegate(selector,[type],[data],fn)//指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
//使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
$("div").delegate("button","click",function(){ $("p").slideToggle();});
delegate这个方法可作为live()方法的替代,使得每次事件绑定到特定的DOM元素。
以下两段代码是等同的:
$("table").delegate("td", "hover", function(){ $(this).toggleClass("hover");});
$("table").each(function(){ $("td", this).live("hover", function(){ $(this).toggleClass("hover");});}); 12.
undelegate([selector,[type],fn])//删除由 delegate() 方法添加的一个或多个事件处理程序
$("p").undelegate();//从p元素删除由 delegate() 方法添加的所有事件处理器
$("p").undelegate( "click" )//从p元素删除由 delegate() 方法添加的所有click事件处理器
从form元素删除由 delegate() 方法添加的".whatever"命名空间:
var foo = function () { //.....};
//用delegate() 方法给click事件增加".whatever"命名空间
$("form").delegate(":button", "click.whatever", foo);
$("form").delegate("input[type='text']", "keypress.whatever", foo);
// 用undelegate()方法删除delegate()方法增加的".whatever"命名空间
$("form").undelegate(".whatever");
13.
hover([over,]out)//一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法
$("td").hover//鼠标悬停的表格加上特定的类
(
function () {$(this).addClass("hover");
},
function () { $(this).removeClass("hover");}
toggle([speed],[easing],[fn])
); 14.
//用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件
//如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。
$('td).toggle();//对表格切换显示/隐藏
$("td").toggle(//
对表格的切换一个类
function () { $(this).addClass("selected");},
function () { $(this).removeClass("selected"); }
);
$("p").toggle("slow");//
用600毫秒的时间将段落缓慢的切换显示状态
$("p").toggle("fast",function(){ alert("Animation Done.");});//
用200毫秒将段落迅速切换显示状态,之后弹出一个对话框。
$('#foo').toggle(showOrHide);
//相当于
if (showOrHide) {$('#foo').show();} else { $('#foo').hide();}
15.
blur([[data],fn])//当元素失去焦点时触发 blur 事件
$("p").blur();
$("p").blur( function () { alert("Hello World!"); } );
16.change([[data],fn])//当元素的值发生改变时,会发生 change 事件
$(selector).change();//触发被选元素的 change 事件。
$("input[type='text']").change( function() { // 这里可以写些验证代码});
17.
click([[data],fn])//触发每一个匹配元素的click事件。
$("p").click();//触发每一个匹配元素的click事件
$("p").click( function () { $(this).hide(); });//将页面内所有段落点击后隐藏
18.
dblclick([[data],fn])//当双击元素时,会发生 dblclick 事件
19.
error([[data],fn])//当元素遇到错误(没有正确载入)时,发生 error 事件。
$(window).error(function(msg, url, line){
jQuery.post("js_error_log.php", { msg: msg, url: url, line: line });
});
$("img").error(function(){
$(this).hide();
});
20.
focus([[data],fn])//当元素获得焦点时,触发 focus 事件。
$(document).ready(function()//
当页面加载后将 id 为 'login' 的元素设置焦点
{$("#login").focus();
});
使人无法使用文本框:
$("input[type=text]").focus(function(){ this.blur();});
21.focusin([data],fn)//当元素获得焦点时,触发 focusin 事件,focusin事件跟focus事件区别在于,他可以在父元素上检测子元素获取焦点的情况。
22.focusout([data],fn)//当元素失去焦点时触发 focusout 事件,focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况。
23.
keydown([[data],fn])//当键盘或按钮被按下时,发生 keydown 事件。
$(window).keydown(function(event){
switch(event.keyCode) {
// ...
// 不同的按键可以做不同的事情
// 不同的浏览器的keycode不同
// 更多详细信息: http://unixpapa.com/js/key.html
// ...
}
});
24.
keypress([[data],fn])//当键盘或按钮被按下时,发生 keypress 事件
$("input").keydown(function(){
$("span").text(i+=1);
});
25.
keyup([[data],fn])//当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。
26.mousedown([[data],fn])//当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
$("button").mousedown(function(){
$("p").slideToggle();
});
27.
mouseenter([[data],fn])//当鼠标指针穿过元素时,会发生 mouseenter 事件。该事件大多数时候会与mouseleave 事件一起使用。
28.
mouseleave([[data],fn])//当鼠标指针离开元素时,会发生 mouseleave 事件。该事件大多数时候会与mouseenter 事件一起使用
29.mousemove([[data],fn])//当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。
mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标
30.mouseout([[data],fn])//当鼠标指针从元素上移开时,发生 mouseout 事件 31.mouseover([[data],fn])//当鼠标指针位于元素上方时,会发生 mouseover 事件 32.mouseup([[data],fn])//当在元素上放松鼠标按钮时,会发生 mouseup 事件。
33.
resize([[data],fn])//当调整浏览器窗口的大小时,发生 resize 事件
34.scroll([[data],fn])//当用户滚动指定的元素时,会发生 scroll 事件
35.select([[data],fn])//当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
36.
submit([[data],fn])//当提交表单时,会发生 submit 事件。
37.unload([[data],fn])//在当用户离开页面时,会发生 unload 事件
jQuery慢慢啃之事件(七)的更多相关文章
- jQuery慢慢啃之事件对象(十一)
1.event.currentTarget//在事件冒泡阶段中的当前DOM元素 $("p").click(function(event) { alert( event.curren ...
- jQuery慢慢啃之工具(十)
1.jQuery.support//一组用于展示不同浏览器各自特性和bug的属性集合 2.jQuery.browser//浏览器内核标识.依据 navigator.userAgent 判断. 可用值: ...
- jQuery慢慢啃之ajax(九)
1.jQuery.ajax(url,[settings])//通过 HTTP 请求加载远程数据 如果要处理$.ajax()得到的数据,则需要使用回调函数.beforeSend.error.dataFi ...
- jQuery慢慢啃之文档处理(五)
1.append(content|fn)//向每个匹配的元素内部追加内容. $("p").append("<b>Hello</b>"); ...
- jQuery慢慢啃筛选(四)
1.eq(index|-index) 获取第N个元素 其中负数:一个整数,指示元素的位置,从集合中的最后一个元素开始倒数.(1算起) $("p").eq(1)//获取匹配的第二个元 ...
- jQuery慢慢啃之核心(一)
1. $("div > p"); div 元素的所有p子元素. $(document.body).css( "background", "bla ...
- jQuery慢慢啃之回调(十三)
1.callbacks.add(callbacks)//回调列表中添加一个回调或回调的集合 // a sample logging function to be added to a callback ...
- jQuery慢慢啃之特效(八)
1.show([speed,[easing],[fn]])\\显示隐藏的匹配元素 //speed:三种预定速度之一的字符串("slow","normal", o ...
- jQuery慢慢啃之CSS(六)
1.css(name|pro|[,val|fn])//访问匹配元素的样式属性 $("p").css("color");//获取 $("p") ...
随机推荐
- Android应用连接代理服务器状况监测解决
最近项目里面有这样一个需求,由于项目涉密需要连接VPN通过网址映射去登录内部服务器,而且要通知客户vpn的连接状态.网上有许多类似的连接VPN的解决方案,我也尝试了很多种,下面先列出一种比较靠谱的方式 ...
- 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
转:http://www.cnblogs.com/xingyukun/archive/2007/08/02/840293.html CDM是大多数开发者使用PD时最先创建的模型,也是整个数据库设计最高 ...
- 15个值得开发人员关注的jQuery开发技巧和心得
在这篇文章中,我们将介绍15个让你的jQuery更加有效的技巧,大部分关于性能提升的,希望大家能够喜欢! 1. 尽量使用最新版本的jQuery类库 jQuery项目中使用了大量的创新.最好的方法来提高 ...
- iOS 多线程学习笔记 —— NSThread
本文复制.参考自文章:iOS多线程编程之NSThread的使用 ,主要为了加强个人对知识的理解和记忆,不做他用.原作者声明: 著作权声明:本文由http://blog.csdn.net/totogo ...
- hdu 4465 Candy(二次项概率)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4465 参考博客:http://www.cnblogs.com/goagain/archive/2012 ...
- 深入分析Java的序列化与反序列化
序列化是一种对象持久化的手段.普遍应用在网络传输.RMI等场景中.本文通过分析ArrayList的序列化来介绍Java序列化的相关内容.主要涉及到以下几个问题: 怎么实现Java的序列化 为什么实现了 ...
- 两种常用的启动和关闭MySQL服务
本博文的主要内容有 .通过图形界面来启动和关闭MySQL服务 .通过DOS窗口来启动和关闭MySQL服务 1.通过图形界面来启动和关闭MySQL服务 2.通过DOS窗口来启动和关闭MySQL服务 感谢 ...
- sql Server 发送邮件 错误类型及原因
设置警报 在[常规项]中做以下设置 新建警报 设置警报名称 选择数据库 选择严重性 在[响应项]中可以做以下设置 选择要邮件通知的操作员 可以设置执行一个警报作业 在选项 ...
- Mina学习之与Spring整合
本章中演示在Spring中整合Mina,为了整合到Spring,需要做以下几个步骤: 1. 设置IoHandler <bean id="trapHandler" class= ...
- SQL string类型的数据按int类型排序 分类: SQL Server 2014-12-08 16:56 393人阅读 评论(0) 收藏
说明: 我在做wms进销存软件时,发现一个问题:一张入库单(T_OutIn_BoxTop),入库扫描时要分成多箱,箱号(BoxTop_No)可以是数字也可以是字符串,所以箱号只能是字符串类型的,问题来 ...