[問題] 如何判斷element裡是否已定義event

看板Ajax作者時間15年前 (2010/05/13 17:08), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/2 (看更多)
我的目標是插code到一個網頁 希望該網頁的某一個element發生event時 可以執行某些動作 但問題是 該網頁有一排tab 是利用javascript換頁的 我的target element不是一開始就存在 它可能是按下某個tab後才出現 所以出現之後 才能add event listener到該element (舉例: http://tinyurl.com/3ydj9jg 假設我的target element是按下"tab媒體情報"後裡面的各家媒體) 我目前用一個有點暴力的方法去做 先用jQuery的All Selector選取網頁裡的每個element 當這些elements有被click時(即對應到換頁) 就去check target element是否存在 若存在 則再add event listener到它身上 但現在有個問題是 可能tab外面又包了其他東西 所以雖然可能只點一次tab click function會發生很多遍 導致我的target element被加了很多event listner 會影響我接下來的動作 附上code $(document).ready( function() { $("*").click( function() { var target = $("div's id"); $.each(target, function(){ $(this).click(function(){ alert($(this).text()); }); }); }) }); 執行後就會變成 click target element時 alert會出現很多遍 囧... 我目前想到的解決方式是 假設element有定義click的event listner 就不要再加了 但不知道code要怎麼寫 >///< 或著版友有其他更好的方法嗎? 非常感謝<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.215.200


05/13 17:17, , 2F

05/13 21:01, , 3F
大感謝樓上 問題已解!!!!!!(L)
05/13 21:01, 3F

05/14 03:36, , 4F
這種情形用live是比較適合的.
05/14 03:36, 4F

05/14 12:47, , 5F
不太懂樓上的意思耶 @_@?
05/14 12:47, 5F

05/14 16:46, , 6F
.delegate() 跟 .live() 都可以解決這個問題
05/14 16:46, 6F

05/14 16:47, , 7F
不過優缺點 就要另外請教高手解釋了....
05/14 16:47, 7F
文章代碼(AID): #1Bwy5muh (Ajax)
文章代碼(AID): #1Bwy5muh (Ajax)