2011-03-18 173 views
0

main.php,我有:

$('#GiveMeATextbox').click(function(){ 
    $.get('ReturnATextbox',{'jsample':'sample'}, function(d){$('#container').html(d); }); 
}); 

$('#IamReturnedTextbox').click(function(){ 
    alert("successful"); 
}); 

而我的HTML

<div id="container"> 
    <input type="button" id="GiveMeATextbox"></input> 
</div> 

和ReturnATextbox.php

echo "<input type="text" id="IamReturnedTextbox"></input>" 

我的問題是

$('#IamReturnedTextbox').click(function(){ 
    alert("successful"); 
}); 

將不起作用 - 看來Main.php不會識別$.get生成的HTML。

有什麼建議嗎?

回答

0

您在$ .get調用中缺少.php擴展名。

,你應該這樣寫:

$.get('ReturnATextbox.php',{'jsample':'sample'}, function(d){$('#container').html(d); }); }); 
-1

試試這個

$('#GiveMeATextbox').click(function(){ $.get('ReturnATextbox.php',{jsample:'sample'}, function(d){$('#container').html(d); }); }); 

希望它會工作^^

4

好吧!我相信其他人都忽略了這一點。

如果我是正確的,你已經成功加載內容。

問題是你正試圖對一個不存在的元素運行一個函數,直到$ .get被觸發。

兩種解決方案。

//either a live call which will work on elements loaded into the dom after the initial page load 
$('#IamReturnedTextbox').live("click",function(){ 
    alert("successful"); 
}); 

//or a callback on the $.get function 
$.get("file here",function(){ 
    $('#IamReturnedTextbox').click(function(){ 
     alert("successful"); 
    }); 
)}; 

希望這有助於!

+0

+1是的,這應該是有效的,因爲他將點擊事件附加到一個元素,但尚不存在(也許他不知道Ajax調用的異步性質 - 誰知道)。 – 2011-03-18 11:56:56