2011-07-11 73 views
4

這是我的代碼:jQuery的 - .trigger().load後不工作()

function refresh() { 
    sub_tab=$("#hid").val(); 
    $("#content").load(cur_tab+'.php',function() { 
     alert(sub_tab); 
     $("#pd").trigger('click'); 
    });  
} 

$("#pd").trigger('click');似乎並沒有工作。但是,如果我作爲獨立操作執行此行(不包含load),它將起作用。
#pd是一個<div>正在加載到包含上述腳本的頁面。
任何想法?

#pd是裏面的另一個PHP頁面被加載到#content 。現在,當我點擊#pd,它工作得很好,只是,觸發事件似乎並沒有工作,當我重新加載PHP文件到#內容

+1

@ianbarker:這是一個不同的'load'方法:http://api.jquery.com/load/。它將調用'cur_tab +'。php''的響應加載到'#content'中。 –

+0

@ianbarker:在jQuery中有兩個不同的'.load()'方法。 – jAndy

+2

'#content'裏面是'#pd'嗎? –

回答

1

如果click事件勢必#pd,並且#pd是內部#content,每次重新加載內容時都會失去約束力,因爲#pd正在銷燬並重新創建。

嘗試使用delegate來綁定事件 - 它扮演更很好地與Ajax調用和動態DOM:

$("#content").delegate("#pd", "click", function(){ 
    // click event 
}); 

後來,當您將調用$("#pd").trigger('click');,你應該看到預期的結果。

+0

嗯,謝謝,雖然我仍然有問題,這似乎使我的代碼跟着這個功能,被動的 – Anant

+0

對不起,這仍然不工作:( – Anant

+0

@安南 - 沒有必要感到抱歉,但如果你想爲了得到一個好的答案,你需要編輯問題 - 準確解釋你正在做什麼,以及它如何「不起作用」。答案是基於許多*假設* - 這是一個有教養的猜測。 – Kobi