我有以下脚本有点......
$(document).ready(function(){
// add or remove from favorites
$("input:checkbox").change(function() {
if($(this).is(":checked")) {
$.ajax({
url: 'favorite.aspx',
type: 'POST',
data: { ID:$(this).attr("id"), State:"1" }
});
} else {
$.ajax({
url: 'favorite.aspx',
type: 'POST',
data: { ID:$(this).attr("id"), State:"0" }
});
}
});
// search on keyup
$(".txtSearchBox").keyup(function()
{
$.ajax({
url: 'search.aspx',
type: 'POST',
data: { strPhrase:$(".txtHeaderSearch").val() },
success: function(results)
{
$("#divSearchResults").empty();
$("#divSearchResults").append(results);
}
});
});
});
清除浏览器缓存后第一次加载页面时,收藏夹功能正常,搜索功能也正常。但是,在页面刷新后加载页面后,如果我先执行搜索,然后尝试标记收藏夹,收藏夹将不会插入数据库,我必须单击重新加载浏览器按钮,然后添加收藏夹。< / p>
为什么会这样?
答案 0 :(得分:5)
当您尝试使用ajax插入dom中的内容时,需要使用live()
。
答案 1 :(得分:0)
Live是一个答案,但我在使用live和Internet Explorer时遇到了更改事件的问题,至少在选择字段方面。我已经通过使用livequery插件解决了这个问题。
如果您不想安装插件,jQuery delegate也应该有用。