2014-01-31 2 views
0

У меня есть следующий код события, который перезагружает раздел кода на моей странице. Проблема в том, что если флажок установлен, я не могу найти способ повторно проверить его после перезагрузки.Как сохранить статус флажка после события click/jQuery/ajax call

jQuery(this.el).find('.view_all_future_filter').click(function() { 
    TodoNote.view_all_future_filter = jQuery(this).prop('value'); 
    _this.parent.reload(); 
}) 

Я попытался следующие, но флажок держит сбрасывается в непроверенный:

if(this.view_all_future_filter == "on") { 
    this.query_string += '&view_all_future_filter=' + this.view_all_future_filter; 
    var show_state = "checked"; 
} else { 
    var show_state = ""; 
} 
this.load(); 
jQuery('#view_all_future_filter').prop('checked', show_state); 

Любая помощь будет принята с благодарностью!

ответ

0

Вы можете сохранить статус флажка в файле cookie. Затем в обратном вызове onload инициализируйте статус флажка из файла cookie.

1

Вы можете использовать sessionStorage, чтобы сохранить данные и получить его после того, как содержание перегрузочной:

if (window.sessionStorage) { 

    var checkedState = jQuery('#view_all_future_filter').attr('checked'); 

    sessionStorage.setItem("someCheckboxState", checkedState); 
} 

И когда содержимое загружается на страницу:

if (window.sessionStorage) { 

    var checkedState = sessionStorage.setItem("someCheckboxState"); 

    jQuery('#view_all_future_filter').attr('checked', checkedState); 
} 

Примечание: Если вы используете jQuery 1.6+ вы должны изменение attr до prop для булевых свойств как checked, disabled и т. д.

Смежные вопросы