простой код, чтобы показать / скрыть с cookie - PullRequest
1 голос
/ 16 февраля 2011

Кто-нибудь знает код как можно проще, чтобы показать / скрыть HTML.

С:

-Сохранить опцию куки

-Влияние на Показать / Скрыть

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

Плагин jquery cookie может упростить управление файлами cookie.Что касается показа / скрытия HTML, вы можете взглянуть на методы show() и hide().

0 голосов
/ 16 февраля 2011

Возможно, больше, чем вам нужно, но я использую это с плагином tableorter, чтобы свернуть / развернуть разделы таблиц, сохранить состояние в файле cookie и с помощью .toggle () вы можете получить хороший эффект.

function tableContainer(id,visible,sortColumn,sortOrder){
  this.ID = id;
  this.Visible = visible;
  this.SortColumn = sortColumn;
  this.SortOrder = sortOrder;
}

function bindTableHeaders(element){
  //Bind click handler to the table THs to update object as to current sort column.
  $("thead th","#" + element).bind("click",function(){
    var order = this.order
    var column = this.column
    var $table = $(this).closest("table")
    var visible = $table.attr("expanded") //Technically I suppose if you can click these then it must be visible
    var id = $table.attr("id")

    var tableObj = new tableContainer(id,visible,column,order);

    $.cookie(element, JSON.stringify(tableObj), { secure: true }); //Write the current state into the section cookie   
  });
};

function recoverState(element) {
  // pull cookie for page state and visibility
  var elementData = $.cookie(element);

  if (elementData != null){
    // parse JSON based on object representation
    var json = JSON.parse(elementData)
    var id = json.ID;
    var visible = json.Visible;
    var sortColumn = json.SortColumn == undefined ? 0 : json.SortColumn
    var sortOrder = json.SortOrder == undefined ? 0 : json.SortOrder
  } else {
    var id = element;
    var visible = "true"
    var sortColumn = 0;
    var sortOrder = 0;
  }

  // switch visibility
  if(visible == "false"){
    toggleElement(element)
  }

  // Determine if this section has any data (eg. a <tbody>)
  if ($("tbody","#" + id).length == 0 || $("tbody","#" + id).html() == "") 
    return

  if (pageAction == "Edit"){
      $("#" + id).tablesorter({widgets: ['zebra'], sortList: [[sortColumn,sortOrder]]});      
  } else {
      $("#" + id)
      .collapsible("td.collapsible",{
                    collapse:true
                   })
      .tablesorter({widgets: ['zebra'], sortMultiSortKey:'false', sortList: [[sortColumn,sortOrder]]}); 
  }  
}

function toggleElement(element) {
 if ($("#" + element).attr("expanded") == "true"){
  $("#" + element).attr("expanded","false")
  $("#" + element).hide(); 
  var isVisible = "false"
 } else {
  $("#" + element).attr("expanded","true")
  $("#" + element).show();
  var isVisible = "true"
 } 

 //Rewrite the cookie for this section changing only the visibility
 var elementData = $.cookie(element);
 var visible = isVisible;
 if (elementData != null){
   var json = JSON.parse(elementData)
   var id = json.ID;
   var sortColumn = json.SortColumn;
   var sortOrder = json.SortOrder;
 } else {
   var id = element
   var sortColumn = 0;
   var sortOrder = 0;
 }

 var tableObj = new tableContainer(id,visible,sortColumn,sortOrder);
 $.cookie(element, JSON.stringify(tableObj), { secure: true }); //Write the current state into the section cookie   
}
0 голосов
/ 16 февраля 2011

Это действительно зависит от события / причины, по которой контент должен показываться / скрываться ...

Должен ли пользовательский контент отображаться для конкретного пользователя, и если да, то как вы идентифицируете пользователя (сеансы, openID)? Или это обусловлено событиями, т. Е. Пользователь нажимает на кнопку, и содержимое показывает / скрывает, а файл cookie сохраняет состояние отображения / скрытия?

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