国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

聊一聊事件委托

URLOS / 991人閱讀

摘要:今天想使用點擊事件綁定動態(tài)獲取的元素,但又不想將事件注冊在成功函數(shù)體內(nèi)。

今天想使用點擊事件綁定動態(tài)獲取的元素,但又不想將事件注冊在post成功函數(shù)體內(nèi)。

事件委托,顧名思義就是講子元素事件委托給上級元素
(這是寫上級元素,包含document根元素,因為不局限于它的父元素)

先說一下為什么動態(tài)獲取的元素直接綁定不可以:

  因為動態(tài)元素是后生成的,在事件注冊的時候,它還沒有生成,一般
我們是通過:
$.post(url,function(data){
    //這里拿到data,然后去插入節(jié)點,生成元素
    //如果我們要在這里注冊事件,當然沒問題,直接綁定即可,
    //因為現(xiàn)在元素已經(jīng)生成了
})

很不幸,基于業(yè)務(wù)的復雜性,必須要將改事件抽出來,注冊到全局(因為要做多一層緩存)

既然要在元素未生成前,注冊事件,那么將該事件綁定給上級元素:
$(documnet).on("click","要綁定的事件元素", function(){
    // to do
})

說一下為什么要這樣做:

我在做一個優(yōu)惠券功能,優(yōu)惠券有使用和未使用的區(qū)別,那么就有這樣一個需求:
點擊使用:去請求使用的;
點擊未使用:去請求未使用的;

我不可能每點擊一次都去請求一次吧,我希望我請求過了的數(shù)據(jù),就不希望它再請求了

這里就要加一個緩存給它,設(shè)兩個變量,分別保存使用和未使用的,
點擊它的時候,只要對應(yīng)的變量不為空,就直接渲染,為空就去請求
    var willData, doneData, state;
function session(){
    //state是用來判斷點擊的是已使用還是未使用的,忽略即可
  if(state == 0) {
    if(willData) {
      $("#coupon-box").append(willData)
    } else {
      $.post(url,function(){
          $("綁定事件元素").on(function(){})
      })
    }
  } else {
    if(doneData) {
      $("#coupon-box").append(doneData)
    } else {
      $.post(url,function(){
          $("綁定事件元素").on(function(){})
      })
    }
  }
}

寫完邏輯后,(如果是在post函數(shù)體注冊的事件)就會發(fā)現(xiàn)一個很奇怪的問題

當激活緩存,去插入元素時,發(fā)現(xiàn)點擊事件失效了;
因為我是通過移除remove()和append()再插入去切換使用和未使用的,
所以已經(jīng)通過post綁定的元素,被我移除了,通過session去插入的元素并
沒有注冊點擊事件,當然我們也可以在給它注冊一次,畢竟要提高代碼重用
所以這里用了事件委托:
$("上級元素").on("click","綁定元素",function(){

})

=====本文到此結(jié)束,代碼比較少,最重要的是思路,對于剛?cè)腴T的小伙伴可以看一看哈!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/107284.html

相關(guān)文章

  • 一聊前端的監(jiān)控

    摘要:今天我們來聊聊前端的監(jiān)控我們?yōu)槭裁葱枰岸吮O(jiān)控為了獲取用戶行為以及跟蹤產(chǎn)品在用戶端的使用情況,并以監(jiān)控數(shù)據(jù)為基礎(chǔ),指明產(chǎn)品優(yōu)化方向前端監(jiān)控分為三類性能項目數(shù)據(jù)監(jiān)控異常監(jiān)控性能監(jiān)控衡量前端的性能的指標是時間那么如何監(jiān)測時間呢,瀏覽器給我們提 今天我們來聊聊前端的監(jiān)控 我們?yōu)槭裁葱枰岸吮O(jiān)控 ? 為了獲取用戶行為以及跟蹤產(chǎn)品在用戶端的使用情況,并以監(jiān)控數(shù)據(jù)為基礎(chǔ),指明產(chǎn)品優(yōu)化方向 前端監(jiān)控...

    Pikachu 評論0 收藏0
  • [一聊系列]一聊WEB前端安全那些事兒

    摘要:所以今天,就和大家一起聊一聊前端的安全那些事兒。我們就聊一聊前端工程師們需要注意的那些安全知識。殊不知,這不僅僅是違反了的標準而已,也同樣會被黑客所利用。 歡迎大家收看聊一聊系列,這一套系列文章,可以幫助前端工程師們了解前端的方方面面(不僅僅是代碼):https://segmentfault.com/blog... 隨著互聯(lián)網(wǎng)的發(fā)達,各種WEB應(yīng)用也變得越來越復雜,滿足了用戶的各種需求...

    AZmake 評論0 收藏0
  • JavaScript 五十問——認真一聊去抖與節(jié)流

    摘要:前言無論是面試還是在討論瀏覽器優(yōu)化過程中,都會涉及到去抖動和節(jié)流的問題。總的來說,這二者是一種限制事件觸發(fā)頻率的方式。不同的是,節(jié)流會指定事件觸發(fā)的時間間隔而去抖動會指定事件不觸發(fā)的時間間隔。 前言 無論是面試還是在討論瀏覽器優(yōu)化過程中,都會涉及到去抖動和節(jié)流的問題。總的來說,這二者是一種限制事件觸發(fā)頻率的方式。不同的是,節(jié)流會指定事件觸發(fā)的時間間隔;而去抖動會指定事件不觸發(fā)的時間間隔...

    chadLi 評論0 收藏0
  • JavaScript 五十問——認真一聊去抖與節(jié)流

    摘要:前言無論是面試還是在討論瀏覽器優(yōu)化過程中,都會涉及到去抖動和節(jié)流的問題。總的來說,這二者是一種限制事件觸發(fā)頻率的方式。不同的是,節(jié)流會指定事件觸發(fā)的時間間隔而去抖動會指定事件不觸發(fā)的時間間隔。 前言 無論是面試還是在討論瀏覽器優(yōu)化過程中,都會涉及到去抖動和節(jié)流的問題。總的來說,這二者是一種限制事件觸發(fā)頻率的方式。不同的是,節(jié)流會指定事件觸發(fā)的時間間隔;而去抖動會指定事件不觸發(fā)的時間間隔...

    EscapedDog 評論0 收藏0
  • 前端性能優(yōu)化JavaScript篇

    摘要:減少作用域鏈上的查找次數(shù)。盡量少用全局變量,盡量使用局部變量。全局變量如果不手動銷毀,會一直存在,造成全局變量污染,可能很產(chǎn)生一些意想不到的錯誤,而局部變量運行完成后,就被會被回收使用代替大量的內(nèi)聯(lián)樣式修改。性能優(yōu)化還需要繼續(xù)深入研究。 關(guān)于前端性能優(yōu)化的討論一直都很多,包羅的知識也很多,可以說性能優(yōu)化只有更好,沒有最好。前面我寫了一篇關(guān)于css優(yōu)化的總結(jié)文章,今天再從javascri...

    chuyao 評論0 收藏0

發(fā)表評論

0條評論

URLOS

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<