本文主要介绍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"});
相关推荐
理解并实践这一代码,不仅可以提升开发者在互动效果设计上的技能,也有助于深入理解Web开发中的关键技术和最佳实践。在实际项目中,根据需求进行调整和优化,可以创建出满足各种应用场景的转盘抽奖功能。
**jQuery应用开发实践指南示例代码** 在编程领域,jQuery是一个非常重要的JavaScript库,它极大地简化了DOM操作、事件处理、动画制作以及Ajax交互。《jQuery应用开发实践指南》是一本深入浅出介绍jQuery使用的书籍...
Demo-Ingenious JQuery custom event JQuery最佳实践-精妙的自定义事件 问题:一个复选框X,你如何便捷地触发它的click事件的处理逻辑,但是又不改变它当前的选中状态? 答案:用自定义事件处理函数封装复选框click...
首先,标题“jquery自定义对话框”指的是在jQuery中实现一个可以自定义的弹出窗口,通常这种窗口被称为模态对话框或警告对话框。它用于向用户显示重要的信息、获取用户的输入,或者执行某些操作前的确认过程。在网页...
在探讨jQuery自定义插件的过程中,我们首先要了解的是插件的概念和它在jQuery中的角色。jQuery作为一个流行的JavaScript库...需要注意的是,在开发过程中应遵循jQuery的编码风格和最佳实践,以确保插件的兼容性和性能。
在“犀利开发”部分,作者可能涵盖了诸如高效编写JavaScript代码的方法,如何优化DOM操作,事件处理的最佳实践,以及如何利用jQuery构建复杂的用户交互等主题。这部分内容旨在提升开发者的代码质量和效率,使他们...
通过这份资料,你不仅可以掌握jQuery插件的使用,还能了解到前端开发的最佳实践,从而提升你的Web开发技能。无论是初学者还是有经验的开发者,都能从中受益,实现更高效、更优质的前端开发工作。
在本文中,我们将深入探讨如何使用jQuery与百度地图API结合,实现自定义标注信息的功能。这一技术对于构建具有地理定位功能的网站非常有用,比如...记得在实际项目中,遵循最佳实践和安全规范,确保代码的质量和效率。
总结以上知识点,可以看出通过学习和应用jQuery自定义下拉列表示例,不仅可以帮助开发者更好地理解jQuery如何操作DOM和处理事件,还可以学习到如何通过插件化的方式来封装和复用代码。掌握这些知识点不仅能够提高...
总结,jQuery Dialog是构建交互式Web界面的强大工具,通过深入理解其配置选项、事件机制和应用场景,开发者可以创造出各种富有创意的交互体验。实践过程中,结合最佳实践,可以确保Dialog在提高用户体验的同时,保持...
### 使用jQuery的最佳实践 1. **避免全局污染**:使用IIFE(立即执行函数表达式)封装jQuery代码,减少全局变量。 2. **利用缓存**:将经常使用的DOM查询结果存储在变量中,减少DOM查找次数。 3. **事件代理**:...
在这个压缩包的jQueryDemo中,每个示例可能都会覆盖上述的一个或多个知识点,通过实践这些示例,开发者能够深入理解jQuery的工作原理,并将这些技巧应用到自己的项目中。这是一份非常宝贵的资源,特别是对于初学者来...
### 五、最佳实践 1. **性能考虑**:避免在事件回调中执行过于复杂的操作,以减少滚动时的性能开销。 2. **兼容性测试**:确保插件在不同浏览器和设备上的表现一致,尤其是对移动设备的支持。 3. **优化用户体验**...
**jQuery 1.4.1 与 jQuery 1.8.3:...每个版本的更新不仅带来了性能和功能的提升,也反映了前端开发的变迁和最佳实践的演进。无论是选择哪个版本,jQuery 都能帮助开发者快速高效地实现网页的交互和动画效果。
在实际开发中,考虑到浏览器兼容性和性能优化,记得在使用jQuery smartMenu时结合现代前端开发的最佳实践,比如模块化加载(如AMD或CommonJS)、代码压缩和合并等。 总结来说,jQuery smartMenu是一个功能强大且...
总结,jQuery 1.3.1.js的开发应用涵盖了DOM操作、事件处理、动画效果和AJAX交互等多个方面,通过深入学习和实践,开发者可以大大提高JavaScript编程的效率和代码质量。在实际工作中,结合不断更新的jQuery版本,可以...
总结jQuery事件处理的最佳实践: 1. **将所有jQuery代码置于事件处理函数内**:这有助于保持代码的模块化,只在特定事件触发时执行相关逻辑。 2. **将所有事件处理函数置于文档就绪事件处理器中**:使用`$(document...