文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JQuery最佳实践-精妙的自定义事件 -

JQuery最佳实践-精妙的自定义事件 -

时间:2010-09-03  来源:缘分星空

关于JQuery自定义事件,不少同学曾发邮件问我究竟日常JS应用中会不会用到,以及具体例子云云。。。

恰好偶最近负责的一个可视化编辑器的开发,其中有些地方便应用了JQuery的自定义事件,而且达到了很好的效果-精简代码的同时充分利用了OO的原则。

本文以我实际应用开发过程中遇到的一个例子进一步说明“什么时候用JQuery的自定义事件以及怎么用”,希望可以抛砖引玉,同时权且当是回复同学们的邮件了。

 

问题

一个复选框X,你如何便捷地触发它的click事件的处理逻辑,但是又不改变它当前的选中状态?

答案

其实没有什么标准答案,用传统的方式,写一个函数

 

var onClick=function(dom){
//复选框x的click事件的处理逻辑
};

 

 

当仅仅需要执行处理逻辑而不改变复选框的状态时,

 

onClick(X);//X引用复选框

为了响应用户直接点击复选框,你还需要为复选框X添加相应的click处理函数,

 

 

$(X).click(function(evt){
//执行处理逻辑
onClick(this);
});

 

 

但是,我要说的是,这里可以利用自定义事件处理函数封装复选框click事件的处理逻辑!然后触发该自定义事件。而且个人觉得具有必要性和优点:

1,onClick的逻辑是属于复选框自身的,没有必要用一个全局方法来定义并剥离复选框对象

从面向对象的角度说,对象由属性和行为(方法)构成,所以onClick的逻辑可以封装在复选框的作用域(context)内。

2,充分利用匿名函数,减少全局变量或者函数的数量,有利于提高脚本的执行效率

....

代码示例

1,首先定义一个变量$x引用缓存我们的复选框对象。这点非常重要但很多js开发员没有意识到:每调用一次jquery的$方法选中某个元素=遍历一次html dom树。所以要学会利用js变量缓存对象~

var $x=$(X);
2,定义一个自定义事件evtClick,封装处理逻辑
$x.bind("evtClick",function(evt){
//onClick的处理逻辑
});
3,当要执行处理逻辑又不想改变复选框的选中状态时,利用trigger方法触发evtClick事件
$x.trigger("evtClick");
4,click事件

 

$x.click(function(evt){
$x.trigger(
"evtClick");
});

 

 

Demo!

以下应用场景你曾经遇到过么?

需求:某个容器A,用户可以设置它的4条边框的有无以及边框色?“边框的有无”和“颜色的变化”需要联动,
就是说改变边框的时候获取当前设定的颜色,改变颜色的时候获取当前设定的边框,并及时反映到容器A上。

注:本例子边框颜色统一设置,分别设置的例子大家可以去写下~
paroles lace leather britneywomens brown leather vestcruise deals incleather jacket hoodvacation rentals poolcarnival cruise ships comparisonrustic living room furnituresecurity decalsamerican artist listmexico resorts mapmens brown leather coatgirlfriends tv schedulecelebrity luggageGucci-181648gold letter ringsvacation rentals apartmentsspring hair trendsallison arieff sunset magazinekooba bagssimple interior design ideascruise line employment agencydiscount hartmannmarc jacobs faridahbrookfield apartments virginia beachcruise cabo mexicoparty cruises californiamotorcycle handlebar accessoriesdesigner man purseair sea cruise packagesmarc marc jacobs summer 2009trendy travel bagscruise trippromotional playing cards longer thanstraw clutch handbagsport winter jacketfurniture outletguess daisy logo medium discountsstar princess internetkawasaki accessoriescheap poster printingchristmas cross stitch kitscoach ladybug pursewatercolor painting techniqueblack kenneth colelinen toweldesigner purses louis vuittondelsey helium hyperlite carrycheap cabin rentalsnative plants benefitscolor conference 2010costa rica weatherocean properties for salechanel hand bagsfendi satchelprada bags 2007history of st vincent and the grenadinesfake juicy purseslouis vuitton copy bagsmatrix trench coatreview cruise linesstephen sprouse shirtserigraphnevis caribbeangraphite sculptureG181485-02metal rivetsmemorial day craft ideasbeachfront cottage rentalscommercial washer partslarge wheeled luggagemonogram robemake your own art printspersonalized baby christmas giftsbaby craft kitswomens leather bags95037-7louis bag songboat sweepstakes 2009family cruises 2009black hobo handbag shopvillage apartments bequiashopping tote handbagcruise in reviewwestern pleasure chapswater color printsvacation rental property salerefinish leather steering wheeldassault aircraftstarbucks restaurantbeach accommodationstravelocity all inclusivesilver jewelry pendantscotton scarfwedding cake monogram shoptokidoki bags saleautomotive paint tipslouis vuitton cup sailingbuy gucci shoesbelt slide holsterleather jacket rain

Replica lv Hangbags

Replica Hangbags

Hangbags

replica handbags

replica handbags

replica handbags

replica handbags

replica handbags

bags

handbags

replica handbags

replica handbags

replica handbags

usb cable

usb cable

usb cable

usb cable

usb flash drives

usb flash drives

usb flash drives

usb flash drives usb flash drives usb flash drives usb flash drives usb flash drives usb flash drives
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载