奇怪的行为

时间:2010-10-05 10:44:35

标签: ajax jquery

我有以下脚本有点......

$(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>

为什么会这样?

2 个答案:

答案 0 :(得分:5)

当您尝试使用ajax插入dom中的内容时,需要使用live()

http://api.jquery.com/live/

答案 1 :(得分:0)

Live是一个答案,但我在使用live和Internet Explorer时遇到了更改事件的问题,至少在选择字段方面。我已经通过使用livequery插件解决了这个问题。

如果您不想安装插件,

jQuery delegate也应该有用。