我使用$ .ajax()函数从服务器获得了一些内容。我尝试用这些数据替换一些元素然后操纵它。这是代码:
$.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
});
答案 0 :(得分: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').livequery('change', function() { //or .click()
//do something
});
然后当您插入#years块时,它会自动注册change
事件。
答案 1 :(得分:0)
事件绑定代码应位于“success”函数内部,因此它将在#years添加到页面后运行。否则,jquery正在寻找#years并且找不到它,并且没有绑定。
答案 2 :(得分:0)
如果你可以使用jquery 1.3(今天发布),那么请查看新的.live()方法。