Странное поведение - PullRequest
       1

Странное поведение

1 голос
/ 05 октября 2010

У меня есть следующий скрипт, который работает вроде ...

$(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); 
            }
        });
    });
});

Когда страница загружается в первый раз после очистки кэша браузера, функция избранного работает нормально, как и функция поиска. Однако после загрузки страницы после обновления страницы, если я сначала выполню поиск, затем попытаюсь пометить избранное, избранное не будет вставлено в базу данных, я должен нажать кнопку перезагрузки браузера, а затем добавить избранное. 1004 *

Почему это происходит?

Ответы [ 2 ]

5 голосов
/ 05 октября 2010

Вам нужно использовать live(), поскольку вы пытаетесь воздействовать на вещи в dom, которые вы вставляете, используя ajax.

0 голосов
/ 05 октября 2010

Live - это ответ, но у меня были проблемы с событием change в live и Internet Explorer, по крайней мере в некоторых полях.Я решил проблему с помощью плагина livequery.

jQuery делегат также должен работать, если вы не хотите устанавливать плагины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...