jQuery為非同步載入的元素註冊事件處理函式
本章節介紹一下如何為非同步記載的元素註冊事件處理函式,非同步載入的資料通常情況動態生成的,無法採用bind()或者click這種形式直接註冊事件處理函式,看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> ul li{ width:350px; height:25px; list-style:none; font-size:12px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#box li").click(function(){ $("#show").text($(this).text()); }) $("#bt").click(function(){ $("#box").append("<li>這是螞蟻部落新新增的資料。</li>"); }) }) </script> </head> <body> <div id="show"></div> <ul id="box"> <li>螞蟻部落歡迎您,只有努力奮鬥才會有美好的明天。</li> <li>沒有人一開始就是高手,必須要通過努力才行。</li> <li>要珍惜每一分鐘,失去就永遠不會回來。</li> <li>太陽每一天都是新的,不要浪費。</li> </ul> <input type="button" id="bt" value="新增元素"/> </body> </html>
上面的程式碼中,點選原來的li元素能夠觸發click事件,但是點選按鈕新新增的li元素則不會觸發,這是因為新新增的元素並沒有註冊相應的事件處理函式,那麼我們可以通過其他途徑來避免此問題的出現。解決的方式就是利用事件冒泡效果,將事件處理函式註冊在li元素的父元素上,那麼就算是點選沒有註冊事件處理函式的新新增的li,也會觸發事件,因為事件會向上冒泡。
程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> ul li{ width:350px; height:25px; list-style:none; font-size:12px; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#box").on("click","li",function(){ $("#show").text($(this).text()); }) $("#bt").click(function(){ $("#box").append("<li>這是螞蟻部落新新增的資料。</li>"); }) }) </script> </head> <body> <div id="show"></div> <ul id="box"> <li>螞蟻部落歡迎您,只有努力奮鬥才會有美好的明天。</li> <li>沒有人一開始就是高手,必須要通過努力才行。</li> <li>要珍惜每一分鐘,失去就永遠不會回來。</li> <li>太陽每一天都是新的,不要浪費。</li> </ul> <input type="button" id="bt" value="新增元素"/> </body> </html>
上面的程式碼實現了我們的要求,點選新新增的元素也會觸發事件,當然這裡不是什麼非同步操作,但是原理是一樣的。
相關閱讀:
1.on()函式可以參閱jquery on()一章節。
2.append()函式可以參閱jQuery append()一章節。
相關文章
- jquery為動態新增元素註冊事件處理函式jQuery事件函式
- 如何為新增的元素註冊事件處理函式事件函式
- jQuery能夠為一個元素註冊多個相同事件處理函式jQuery事件函式
- jQuery如何解綁註冊的事件處理函式jQuery事件函式
- jQuery為動態新增的按鈕註冊事件處理函式jQuery事件函式
- jquery註冊事件處理函式常用的幾種方式jQuery事件函式
- JavaScript 註冊事件處理函式JavaScript事件函式
- JavaScript 批量註冊事件處理函式JavaScript事件函式
- js為按鈕註冊點選事件處理函式JS事件函式
- javascript如何移除註冊的事件處理函式JavaScript事件函式
- js刪除註冊的事件處理函式JS事件函式
- for迴圈批量註冊事件處理函式事件函式
- js如何批量註冊事件處理函式JS事件函式
- js為物件註冊多個事件處理函式程式碼JS物件事件函式
- attachEvent()註冊事件處理函式this指向問題事件函式
- 如何判斷元素上是否已經註冊指定型別事件處理函式型別事件函式
- js批量註冊事件處理函式程式碼例項JS事件函式
- javascript批量註冊事件處理函式程式碼例項JavaScript事件函式
- 如何實現為window.onload註冊多個事件處理函式事件函式
- javascript刪除註冊的事件處理函式簡單介紹JavaScript事件函式
- 使用for語句批量註冊事件處理函式程式碼例項事件函式
- jquery為連結a元素註冊click事件並避免跳轉現象jQuery事件
- on()方法一次註冊多個事件處理函式程式碼例項事件函式
- jquery如何獲取註冊在某個元素上的事件jQuery事件
- 批量註冊事件處理函式索引總是最後一個問題解決事件函式索引
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 解決jQuery多個事件處理函式執行的現象jQuery事件函式
- JavaScript 非同步函式的 Promisification 處理JavaScript非同步函式
- js動態新增一個按鈕並且註冊事件處理函式程式碼例項JS事件函式
- echarts 繫結事件處理函式Echarts事件函式
- Jquery中為後生成或插入的Html元素先設定響應事件處理方法jQueryHTML事件
- 公共事件處理函式js庫事件函式JS
- jQuery如何判斷是否註冊某事件jQuery事件
- Laravel 事件&非同步處理Laravel事件非同步
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- onerror事件處理函式返回false或者true的作用Error事件函式False
- jquery 為動態新增的元素繫結事件jQuery事件