最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

不要使用jQuery觸發(fā)原生事件的方法

 更新時(shí)間:2014年03月03日 17:39:46   作者:  
這篇文章主要介紹了不要使用jQuery觸發(fā)原生事件的方法,需要的朋友可以參考下
JavaScript 框架提供了如此多的功能,以至于一不小心就會(huì)掉進(jìn)坑里去。 對(duì)工具庫依賴得越多,在修改或維護(hù)時(shí)一個(gè)小小的改的很可能就會(huì)影響到其他的功能(俗稱 處處是地雷,走路需謹(jǐn)慎),特別是維護(hù)多年前的遺留代碼時(shí)。 我經(jīng)??吹降囊粋€(gè)錯(cuò)誤是關(guān)于 jQuery的 trigger, trigger允許開發(fā)者手動(dòng)觸發(fā)某些事件。 這個(gè)功能真的非常強(qiáng)大與好用,但是請(qǐng)遵守約定,不要觸發(fā)JS中那些原生的事件名稱!
注:我知道,其他JS框架也提供這種功能 —— 我只用jQuery作為一個(gè)例子,因?yàn)槲铱吹搅怂氖軞g迎程度,最近又剛好碰上這個(gè)問題。 而所有工具類庫都有可能引發(fā)同樣的問題。 比如 MooTools使用 的 fireEvent 等。
下面是使用 trigger 來完成任務(wù)的一個(gè)典型例子:
復(fù)制代碼 代碼如下:

// 監(jiān)聽 click 事件
jQuery('.tabs a').on('click', function() {
// 執(zhí)行某些操作,比如切換界面,加載內(nèi)容等..
});

// 在最后一個(gè) a 標(biāo)簽上觸發(fā) click 事件
jQuery('.tabs a').last().trigger('click');

上面的代碼將會(huì)打開給定index的tab標(biāo)簽。 我完全理解開發(fā)者使用 trigger 來處理這些事情的原因,通常是因?yàn)橐|發(fā)的函數(shù)在全局范圍內(nèi)不可用,而觸發(fā)事件是很容易的,也總是可用的。 問題是,使用原生的事件名稱來觸發(fā)可能 ... 觸發(fā) ... 一些無法言說的傷。讓我們來看看在網(wǎng)站的其他地方添加的內(nèi)容:
復(fù)制代碼 代碼如下:

// 監(jiān)聽 body 內(nèi)部的所有 click 事件
jQuery('body').on('click', 'a', function() {
// 此處可以進(jìn)行一些業(yè)務(wù)邏輯處理 ...

// 滿足條件(Condition met), 則進(jìn)行另外一些操作!
if(conditionMet) {
// 刷新頁面?
// 打開子菜單?
// 提交表單?
// ... 燈燈蹬蹬,Intel
}
});

現(xiàn)在有一個(gè)問題 —— 選項(xiàng)卡單擊事件可能被其他完全獨(dú)立的部分監(jiān)聽著,這處理起來就比較麻煩。 呵呵,最好的解決方案是使用一個(gè)自定義的事件名稱跟在原生事件后面:
復(fù)制代碼 代碼如下:

// 監(jiān)聽 click 事件時(shí),帶上自定義的事件
jQuery('.tabs a').on('click tabs-click', function() {
// 切換 tab, 加載內(nèi)容,等等等等 ...
});

// 在最后一個(gè)標(biāo)簽上觸發(fā) "假" 的事件
jQuery('.tabs a').last().trigger('tabs-click');

現(xiàn)在你的事件觸發(fā)器將不再和頁面上的其他監(jiān)聽器起沖突。 保守的開發(fā)人員對(duì)我說,你可能想要避免使用 trigger (其他工具庫也是一樣的),但好歹你也應(yīng)該添加一個(gè)自定義事件名稱!

相關(guān)文章

  • jQuery實(shí)現(xiàn)大屏滾動(dòng)播放效果

    jQuery實(shí)現(xiàn)大屏滾動(dòng)播放效果

    這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)大屏滾動(dòng)播放效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • jQuery阻止冒泡和HTML默認(rèn)操作

    jQuery阻止冒泡和HTML默認(rèn)操作

    jQuery是一個(gè)快捷簡(jiǎn)便的JavaScript框架,說道框架可以直接理解為就是對(duì)原來底層的東西進(jìn)行了封裝使得開發(fā)者能夠利用這個(gè)框架快速開發(fā)。
    2010-11-11
  • jquery引入外部CDN 加載失敗則引入本地jq庫

    jquery引入外部CDN 加載失敗則引入本地jq庫

    這篇文章主要介紹了網(wǎng)站加載第三方CDN,如果jQuery庫不成功則加載本地的jquery的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2018-05-05
  • jQuery動(dòng)態(tài)添加li標(biāo)簽并添加屬性和綁定事件方法

    jQuery動(dòng)態(tài)添加li標(biāo)簽并添加屬性和綁定事件方法

    下面小編就為大家分享一篇jQuery動(dòng)態(tài)添加li標(biāo)簽并添加屬性和綁定事件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • js/jquery判斷瀏覽器的方法小結(jié)

    js/jquery判斷瀏覽器的方法小結(jié)

    在網(wǎng)站前端開發(fā)中,瀏覽器兼容性是前端開發(fā)框架要解決的第一個(gè)問題,要解決兼容性問題就得首先準(zhǔn)確判斷出瀏覽器的類型及其版本,而判斷瀏覽器的版本一般只能通過分析瀏覽器的userAgent才能知道.今天我們把各種判斷方法都總結(jié)一下,希望對(duì)大家有所幫助
    2014-09-09
  • jquery ajax jsonp跨域調(diào)用實(shí)例代碼

    jquery ajax jsonp跨域調(diào)用實(shí)例代碼

    今天研究了AJAX使用JSONP進(jìn)行跨域調(diào)用的方法,發(fā)現(xiàn)使用GET方式和POST方式都可以進(jìn)行跨域調(diào)用,這里簡(jiǎn)單分享下,方便需要的朋友
    2013-12-12
  • jquery實(shí)現(xiàn)垂直和水平菜單導(dǎo)航欄

    jquery實(shí)現(xiàn)垂直和水平菜單導(dǎo)航欄

    這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)垂直和水平菜單導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • jQuery選擇器總結(jié)之常用元素查找方法

    jQuery選擇器總結(jié)之常用元素查找方法

    jQuery 的選擇器可謂之強(qiáng)大無比,本文給大家總結(jié)下jQuery選擇器之常用元素查找方法,非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • 基于Jquery和html5實(shí)現(xiàn)炫酷的3D焦點(diǎn)圖動(dòng)畫

    基于Jquery和html5實(shí)現(xiàn)炫酷的3D焦點(diǎn)圖動(dòng)畫

    這篇文章主要介紹了基于Jquery和html5實(shí)現(xiàn)炫酷的3D焦點(diǎn)圖動(dòng)畫的相關(guān)資料,焦點(diǎn)圖中的圖片利用了CSS3的相關(guān)特性實(shí)現(xiàn)圖片傾斜效果,從而讓圖片出現(xiàn)3D的視覺效果,感興趣的小伙伴們可以參考一下
    2016-03-03
  • jquery實(shí)現(xiàn)拖動(dòng)效果

    jquery實(shí)現(xiàn)拖動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)拖動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評(píng)論

舟山市| 崇礼县| 宜章县| 徐汇区| 田东县| 东明县| 新兴县| 仲巴县| 塘沽区| 海宁市| 金乡县| 攀枝花市| 石家庄市| 五台县| 广平县| 克拉玛依市| 伊金霍洛旗| 盐津县| 张家口市| 通州区| 潞西市| 连平县| 池州市| 通辽市| 康马县| 万年县| 平阳县| 都兰县| 连平县| 瑞昌市| 德惠市| 小金县| 博爱县| 长治县| 峨眉山市| 龙泉市| 镇原县| 太康县| 景宁| 鱼台县| 静乐县|