2009-01-14 43 views
1

我有一些內容從服務器使用$ .ajax()函數。我嘗試用這些數據替換某個元素,然後對其進行處理。這裏是代碼:從服務器響應的數據jQuery事件

$.ajax({ 
    type: "GET", 
    url: "smpl.php", 
    success: function(servmsg){ 
     $('#panelInfo').replaceWith('<p>' + servmsg + '</p>'); 
    } 
}); 

從服務器的響應是:

<select id="years"> 
    <option>2008</option> 
    <option>2009</option> 
</select> 

當我嘗試它的一些事件,它做什麼,爲前:

$('#years').change(function() { //or .click() 
    //do something 
}); 

回答

3

您需要更改您的代碼:

$.ajax({ 
    type: "GET", 
    url: "smpl.php", 
    success: function(servmsg){ 
     $('#panelInfo').replaceWith('<p>' + servmsg + '</p>'); 
     $('#years').change(function() { //or .click() 
      //do something 
     }); 
    } 
}); 

或者,你可以保持你原來的Ajax調用代碼,並使用livequery像這樣:當你插入#years

$('#years').livequery('change', function() { //or .click() 
    //do something 
}); 

然後塊,它會自動註冊change事件。

0

事件綁定代碼應在'成功'功能中,所以它會在#years添加到頁面後運行。否則,jquery正在尋找#年,找不到它,並且沒有綁定。

0

如果你可以使用jQuery 1.3(今天發佈),然後看看新的.live()方法。

相關問題