Javascript Ajax+浏览器backbutton=复选框不工作

Javascript Ajax+浏览器backbutton=复选框不工作,javascript,jquery,html,ajax,checkbox,Javascript,Jquery,Html,Ajax,Checkbox,我有一个通过Ajax加载的内容页面,上面有一个复选框。当我单击网页上的普通菜单按钮以访问内容时,复选框会正常工作。但是当我转到另一个页面并使用后退按钮返回到包含复选框的页面时,复选框停止工作 html: 如果您查看上述代码,当我单击后退按钮时,控制台将输出“aaa”,但如果我测试复选框,它将不会在控制台中输出“clicked checkbox”。如何使复选框即使在我使用“浏览器后退”按钮后仍能继续工作 可能是相关的PageLoad和Backbutton Ajax代码: function OnLo

我有一个通过Ajax加载的内容页面,上面有一个复选框。当我单击网页上的普通菜单按钮以访问内容时,复选框会正常工作。但是当我转到另一个页面并使用后退按钮返回到包含复选框的页面时,复选框停止工作

html:

如果您查看上述代码,当我单击后退按钮时,控制台将输出“aaa”,但如果我测试复选框,它将不会在控制台中输出“clicked checkbox”。如何使复选框即使在我使用“浏览器后退”按钮后仍能继续工作

可能是相关的PageLoad和Backbutton Ajax代码:

function OnLoadPage(e) {
    e.preventDefault();
    var pageurl = $(this).data('url');
    $.ajax({
        type: 'GET',
        url: pageurl,
        success: function(data) {
            $('#content').html(data['content']); // update content

            if(data['menu']) { // update menu
                $('#menu').html(data['menu']);
            }
            else {
                $('#menu').html('');
            }

            // update url
            window.history.pushState({path:pageurl}, '', pageurl);
        },
        error: function(response) {
           alert('ERROR:' + response.responseText);
        }
    });
}

function InitOverrideBrowserBackButton() {
    // override the back button to get the ajax content without page reload
    $(window).bind('popstate', function() {
        $.ajax({url:location.pathname+'?rel=tab', success: function(data){
            $('#content').html(data['content']); // update content

            if(data['menu']) { // update menu
                $('#menu').html(data['menu']);
            }
            else {
                $('#menu').html('');
            }
        }});
    });
}
我也试过:

$(document).on('click', '#filters input', function() {
    console.log('clicked checkbox');

    filterCheckboxes.filter(':checked').each(function() {
        console.log('working');
        filters.push( this.value );
    });
});

它将输出“aaa”和“点击复选框”,但不“工作”。

在StackOverflow上的其他人的帮助下解决了这个问题。答案如下:

function OnSort(e) {
    console.log('aaa');

    // filter button click
    var filters = [];
    $(document).on('click', '#filters input', function() {
        console.log('clicked checkbox');

        $('#filters input', document).filter(':checked').each(function() {
            console.log('working');
            filters.push( this.value );
        });
    });
}
$(document).on('click', '#filters input', function() {
    console.log('clicked checkbox');

    filterCheckboxes.filter(':checked').each(function() {
        console.log('working');
        filters.push( this.value );
    });
});
function OnSort(e) {
    console.log('aaa');

    // filter button click
    var filters = [];
    $(document).on('click', '#filters input', function() {
        console.log('clicked checkbox');

        $('#filters input', document).filter(':checked').each(function() {
            console.log('working');
            filters.push( this.value );
        });
    });
}