Re: [問題] ajax 與 jquery 的使用
※ 引述《TonyQ (沉默是金)》之銘言:
: 幫原PO重新簡述一下他的問題
: 1.在原頁面對[tip]執行事件綁定
: 2.載入ajax page
: 發現2中 [tip]的元素 tooltip 沒有work. (因為根本沒有被綁訂)
: 解決方案
: A 在2完成的時候針對ajax page 做[tip] tooltip 的綁定,
: (盡量不要綁到1階段中已經綁定的元素 , 否則雙重綁定可能會有後遺症)
: B 改用liveQuery 來進行步驟1的綁定 , 綁在ready上, 我會比較推崇後者.
: 寫javascript , document 的文件概念 、執行的時間軸是最重要的兩個項目,
: 要隨時瞭解這條時間軸走到哪裡 , 當時有哪些成員 , 並善用瀏覽器提供的
: break point功能 , 不然很容易陷入這樣難以自行發現問題的困境.
我碰到的是類似問題,但是更詭異:
我在parent.html裡面會經由ajax呼叫child.html,而child.html裡面有一script
<script>
$(document).ready(function(){//do something});
</script>
問題就出在當我parent.html讀入child.html之後,child.html的script沒有執行,
沒有動作的原因很簡單,因為jQuery的$().ready是在parent.html讀取完畢才會觸發
的,child.html的讀取完畢事件並不會觸發ready事件,所以child.html裡面的$().ready
完全沒作用!
我現在的補救方法是把function參數化提出來,改寫child.html:
<script>
var f = function(){//do something};
f();
$().ready(f);
</script>
這樣就能動作了,但是我認為這不是一個好解法,我認為jQuery應該要對ready事件
觸發的時機與scope做個更動,在ajax讀取child.html完畢時,要觸發 child.html的
ready事件,且ready事件影響範圍僅有child.html之內。
目前正在想能不能在$.ajax的option裡面 success:function這個參數上下手腳,
因為在success時已經有了data可以操作,不知道有沒有辦法對這個data下達.
trigger('ready')來觸發子頁面的ready事件呢?
有誰有試過的?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.21.8
推
12/21 10:18, , 1F
12/21 10:18, 1F
→
12/21 10:19, , 2F
12/21 10:19, 2F
推
12/21 10:23, , 3F
12/21 10:23, 3F
→
12/21 10:53, , 4F
12/21 10:53, 4F
→
12/21 10:53, , 5F
12/21 10:53, 5F
→
12/21 10:54, , 6F
12/21 10:54, 6F
→
12/21 10:54, , 7F
12/21 10:54, 7F
→
12/21 10:54, , 8F
12/21 10:54, 8F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章