本文主要介绍JQuery框架里面支持的自定义事件模型,通过实例说明什么时候可以利用事件模型进行面向对象的JS编程,以及利用“带命名空间的事件处理函数”来避免unbind时影响别的事件订阅。
<iframe id="aswift_0" style="padding: 0px; margin: 0px; left: 0px; position: absolute; top: 0px;" name="aswift_0" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="300" height="250"></iframe>
<iframe id="cproIframe1" style="padding: 0px; margin: 0px;" src="http://cpro.baidu.com/cpro/ui/uijs.php?rs=0&tu=u91397&tn=text_default_300_250&n=jb51_cpr&adn=3&rsi1=250&rsi0=300&rad=&rss0=%23FFFFFF&conBW=0&rss1=%23F7FCFF&conOP=0&rss2=%23006699&titFF=%25E7%2580%25B9%25E5%25AC%25A9%25E7%25B6%258B&titFS=12&titTA=left&rss3=%23333333&rss4=%23333333&rss5=&rss6=%23e10900&rsi5=4&ts=1&at=103&ch=0&cad=1&aurl=&rss7=&cpa=1&fv=11&cn=1&if=16&word=http%3A%2F%2Fwww.jb51.net%2Farticle%2F24411.htm&refer=http%3A%2F%2F74.125.128.100%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3Djquery%25E8%2587%25AA%25E5%25AE%259A%25E4%25B9%2589%25E4%25BA%258B%25E4%25BB%25B6%25E6%25A8%25A1%25E5%259E%258B%26source%3Dweb%26cd%3D1%26ved%3D0CCsQFjAA%26url%3D%2568%2574%2574%2570%253a%252f%252f%2577%2577%2577%252e%256a%2562%2535%2531%252e%256e%2565%2574%252f%2561%2572%2574%2569%2563%256c%2565%252f%2532%2534%2534%2531%2531%252e%2568%2574%256d%26ei%3Der6dUaeiO4WZiQezrYDYBg%26usg%3DAFQjCNENeZ2-FPZPP6-E6ln-wzCJck85tg%26bvm%3Dbv.46865395%2Cd.aGc%26cad%3Drjt&ready=1&jk=b0fb569d4220fdae&jn=3&lmt=1369123433&csp=1440,900&csn=1440,900&ccd=32&chi=1&cja=true&cpl=33&cmi=164&cce=true&csl=zh-CN&did=1&rt=6&dt=1369292414&ev=50331648&c01=0&prt=1369292413533&i3=f&anatp=0&stid=0&lunum=6" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" align="center,center" width="300" height="250"></iframe>
知识要点:
1,自定义事件custom events及事件的订阅
2,trigger、bind、unbind方法的使用
3,带命名空间的自定义事件
将下面内容粘贴至txt文档后再直接粘贴至firebug的控制台,运行看看。
/*
JQuery自定义事件的应用-Javascript OO
有一帅哥叫Levin,在某公司前端设计部工作,他的主管是大帅哥A,经理是大美眉B。
领导们希望可以抽空瞄瞄这家伙每周的工作情况,于是。。。
Levin每周一要用google doc写一份关于上周工作的总结,并被要求写完后要MSN通知A和B。。。
Levin非常乐意做周总结,但是他提出了一个建议:
既然我用google doc写好了,你们喜欢看便用google reader订阅我的文档更新吧,我不喜欢用微软的MSN。。。
这丫...A和B头顶乌鸦飘了几秒,但欣然答应。
*/
//这个是Levin同学
var Levin={name:"Levin"};
Levin=$(Levin);
//每周要写周总结
Levin.bind("evt_weeklyReport",function(evt){
alert(this.name+"高呼:Yeah!周总结已经写好啦.");
});
//主管A
var A={name:"帅哥A"};
//他要订阅Levin的周总结
A.rssLevin=function(){
Levin.bind("evt_weeklyReport.fromA",function(evt,data){
alert(A.name+":嗯,不错,Levin还是挺积极的嘛!");
})
};
A.rssLevin();
//经理B
var B={name:"美眉B"};
//她也订阅Levin的周总结
B.rssLevin=function(){
Levin.bind("evt_weeklyReport.fromB",function(evt,data){
alert(B.name+":周总结呆会看,先看看他说的那个网站");
window.location=evt.site;
})
};
B.rssLevin();
//每次Levin同学写好周总结后便会用google doc发布一下
Levin.trigger({type:"evt_weeklyReport",site:"http://jb51.net"});
//经理B突然有一天去搜狐做了,不再订阅Levin的周结...
[code]
B.unRssLevin=function(){
alert("我要去搜狐做副总裁啦,哈哈");
Levin.unbind("evt_weeklyReport.fromB");
return true;
}();
[html]
//尽管B跳槽了,周总结还是要按时发布的。。。
Levin.trigger({type:"evt_weeklyReport",site:"http://jb51.net"});
1,自定义事件custom events及事件的订阅
2,trigger、bind、unbind方法的使用
3,带命名空间的自定义事件
将下面内容粘贴至txt文档后再直接粘贴至firebug的控制台,运行看看。
复制代码代码如下:
/*
JQuery自定义事件的应用-Javascript OO
有一帅哥叫Levin,在某公司前端设计部工作,他的主管是大帅哥A,经理是大美眉B。
领导们希望可以抽空瞄瞄这家伙每周的工作情况,于是。。。
Levin每周一要用google doc写一份关于上周工作的总结,并被要求写完后要MSN通知A和B。。。
Levin非常乐意做周总结,但是他提出了一个建议:
既然我用google doc写好了,你们喜欢看便用google reader订阅我的文档更新吧,我不喜欢用微软的MSN。。。
这丫...A和B头顶乌鸦飘了几秒,但欣然答应。
*/
//这个是Levin同学
复制代码代码如下:
var Levin={name:"Levin"};
Levin=$(Levin);
//每周要写周总结
复制代码代码如下:
Levin.bind("evt_weeklyReport",function(evt){
alert(this.name+"高呼:Yeah!周总结已经写好啦.");
});
//主管A
复制代码代码如下:
var A={name:"帅哥A"};
//他要订阅Levin的周总结
复制代码代码如下:
A.rssLevin=function(){
Levin.bind("evt_weeklyReport.fromA",function(evt,data){
alert(A.name+":嗯,不错,Levin还是挺积极的嘛!");
})
};
A.rssLevin();
//经理B
复制代码代码如下:
var B={name:"美眉B"};
//她也订阅Levin的周总结
复制代码代码如下:
B.rssLevin=function(){
Levin.bind("evt_weeklyReport.fromB",function(evt,data){
alert(B.name+":周总结呆会看,先看看他说的那个网站");
window.location=evt.site;
})
};
B.rssLevin();
//每次Levin同学写好周总结后便会用google doc发布一下
复制代码代码如下:
Levin.trigger({type:"evt_weeklyReport",site:"http://jb51.net"});
//经理B突然有一天去搜狐做了,不再订阅Levin的周结...
[code]
B.unRssLevin=function(){
alert("我要去搜狐做副总裁啦,哈哈");
Levin.unbind("evt_weeklyReport.fromB");
return true;
}();
[html]
//尽管B跳槽了,周总结还是要按时发布的。。。
复制代码代码如下:
Levin.trigger({type:"evt_weeklyReport",site:"http://jb51.net"});
相关推荐
jQuery自定义事件插件 博文链接:https://ioryioryzhan.iteye.com/blog/245096
jQuery自定义添加标签 仿新浪 仿大街网的添加自定义标签和换一换 收起展开推荐标签效果
jQuery自定义下拉框是一款经过美化的自定义下拉表单特效。
jQuery自定义校验规则,使HTML元素内容匹配自定义的校验方法
jQuery自定义下拉框 jQuery自定义下拉框网页特效.zip
jQuery自定义字符串生成条形码 jQuery自定义字符串生成条形码
jQuery自定义网页弹幕插件,支持显示图片,颜色,文字以及超链接设置弹幕代码。
UI JQuery自定义滚动条插件是 jquery自定义滚动条的UI JQuery插件。 UI JQuery自定义滚动条插件演示图: 点击查看演示:
jquery自定义滚动条插件 1.兼容ie8+ 的自定义滚动条 2.滚动条样式完全自定义 3.单页面多次调用
jQuery自定义标签添加删除代码是一款简单实用的自定义添加标签跟删除特效。
jquery自定义弹出窗口,功能等同window.open,可返回参数
jQuery自定义添加删除标签代码基于jquery.1.9.1.min.js制作,有自定义添加删除标签功能。
jQuery自定义转盘抽奖代码.zip
你可以实现创建,绑定事件,可触发自己定义的jQuery事件。 自定义事件触发 下面的代码是它自定义事件触发。你可以绑定到这个自定义事件。 $event.trigger("myEventName"); 自定义事件绑定 下面的代码创建了一个...
jquery-show-loading是一款小巧的jQuery自定义页面加载loading指示器插件。该插件可以在页面加载时显示自定义的loading指示器,遮罩层。并提供配置参数和回调函数来控制遮罩层和loading指示器的显示和隐藏。
jQuery自定义时间段特效拖动设置时间段表单提交 jQuery自定义拖动设置时间段,可以灵活设置一天内的任意时段。
利用Jquery实现的自定义美化radio与checkbox,好东西赶紧下的额。
jquery自定义滚动条|jquery自定义滚动条|jquery自定义滚动条|jquery自定义滚动条|