0

既存の折りたたみ/展開メニューにjquery.cookiesを追加しようとしていますが、私の人生の間、どこでひどく失敗するかわかりません。

誰かが私がこの問題を理解するのを手伝ってもらえますか?私は今9時間弱コードを見てきました、そしてこれは私が今日書くことになっていた最後の部分です。私の脳は文字通り限界に達しているのではないかと心配していますが、仕事を未完成のままにしておくのは我慢できません。それはおそらく簡単なことで、私はそれを見ることができません。

Cookieをvisible_stateとして設定しましたが、ユーザーがメニューの領域をクリックして展開/折りたたみ/切り替えるたびに、Cookieがクラスとして保存されます。

編集:言及するのを忘れました...cexpand=拡張されたCookieクラス...

ccollapse-折りたたみのCookieクラス

私のオリジナルの.js(作業メニュー)

$(document).ready(function() {
setTimeout(function() {
  // Grow/Shrink
  $('#menu3 > li > a.expanded + ul').show('blind');
  $('#menu3 > li > a.collapsed + ul').hide('blind');
  $('#menu3 > li > a').click(function() {
  $(this).toggleClass('expanded').toggleClass('collapsed').parent().find('> ul').toggle('blind');
});
$('.expand_all').click(function() {
$('#menu3 > li > a.collapsed').addClass('expanded').removeClass('collapsed').parent().find('> ul').show('blind');
});
$('.collapse_all').click(function() {
$('#menu3 > li > a.expanded').addClass('collapsed').removeClass('expanded').parent().find('> ul').hide('blind');
});
}, 0);
});

私の新しい.js

$(document).ready(function() {
var visible_state = $.cookie("visible_state");
setTimeout(function() {
if ($('.expanded').attr('class')=='cexpand'){
  $(this).removeClass('cexpand');
  $(this).addClass('ccollapse');
  $.cookie('visible_state', 'ccollapse', { path: '/', expires: 100});
  $(this).hide('blind');
} else if ($('.collapsed').attr('class')=='ccollapse'){
  $(this).removeClass('ccollapse');
  $(this).addClass('cexpand');
  $.cookie('visible_state', 'cexpand', { path: '/', expires: 100 });
  $(this).show('blind');        
}   
  $('#menu3 > li > a.expanded + ul').show('blind');
  $('#menu3 > li > a.collapsed + ul').hide('blind');    
  $('#menu3 > li > a').click(function() {
  $(this).toggleClass('expanded', 'cexpand').toggleClass('collapsed', 'ccollapse').parent().find('> ul').toggle('blind');
});

$('.expand_all').click(function() {
  $('#menu3 > li > a.collapsed').addClass('expanded', 'cexpand').removeClass('collapsed', 'ccollapse').parent().find('> ul').show('blind');
});
$('.collapse_all').click(function() {
  $('#menu3 > li > a.expanded').addClass('collapsed', 'ccollapse').removeClass('expanded', 'cexpand').parent().find('> ul').hide('blind');
});
}, 0);
});

**編集* close.js ***

 $(document).ready(function() {

var visible_state = $.cookie('visible_state');

 if (visible_state == null){
$('#menu3 > li > a').addClass('collapsed');
$('#menu3 > li > a + ul.1').addClass('expanded');

 };

 if (visible_state == 'collapsed'){
$('#menu3 > li > a').removeClass('expanded');
$('#menu3 > li > a').addClass('collapsed');

$.cookie('visible_state', 'collapsed', { path: '/', expires: 100 });
 };
  if (visible_state == 'expanded'){
$('#menu3 > li > a').addClass('expanded');
$.cookie('visible_state', 'expanded', { path: '/', expires: 100 });
 };

 $('#menu3 > li > a').click(function() {
 if ($('#menu3 > li > a').attr('class')=='expanded'){
$(this).removeClass('expanded');
$(this).addClass('collapsed');
$.cookie('visible_state', 'collapsed', { path: '/', expires: 100 });

} else{
$(this).removeClass('collapsed');
$(this).addClass('expanded');
$.cookie('visible_state', 'expanded', { path: '/', expires: 100 });

}
});

$('#menu3 > li > a.expanded + ul.1').show('blind');
$('#menu3 > li > a.expanded + ul.2').show('blind');
$('#menu3 > li > a.expanded + ul.3').show('blind');
$('#menu3 > li > a.expanded + ul.4').show('blind');
$('#menu3 > li > a.expanded + ul.5').show('blind');
$('#menu3 > li > a.collapsed + ul.1').hide('blind');
$('#menu3 > li > a.collapsed + ul.2').hide('blind');
$('#menu3 > li > a.collapsed + ul.3').hide('blind');
$('#menu3 > li > a.collapsed + ul.4').hide('blind');
$('#menu3 > li > a.collapsed + ul.5').hide('blind');

$('.expand_all').click(function() {
  $('#menu3 > li >           a.collapsed').addClass('expanded').removeClass('collapsed').parent().find('>   ul').show('blind');
  $.removeCookie('visible_state');
  $.cookie('visible_state', 'expanded', { path: '/', expires: 100 });
});
$('.collapse_all').click(function() {
  $('#menu3 > li >   a.expanded').addClass('collapsed').removeClass('expanded').parent().find('> ul').hide('blind');
  $.removeCookie('visible_state');
  $.cookie('visible_state', 'collapsed', { path: '/', expires: 100 });
});
});

私の.html

<div id="leftnav" style="clear:left;">
<div id="wrapper">
  <ul id="menu3" class="leftnavmenu">
    <li class="leftnavitem1"><a href="#" class="expanded">Category 1 <span>1</span>   </a>
      <ul>
    <li class="subitem1"><a href="#">Link 1 <span>1</span></a></li>
    <li class="subitem2"><a href="#">Link 2 <span>1</span></a></li>
    <li class="subitem3"><a href="#">Link 3 <span>1</span></a></li>
      </ul
    </li>
    <li class="leftnavitem2"><a href="#" class="expanded">Category 2 <span>1</span></a>
      <ul>
    <li class="subitem1"><a href="#">Link 1 <span>1</span></a></li>
    <li class="subitem2"><a href="#">Link 2 <span>1</span></a></li>
    <li class="subitem3"><a href="#">Link 3 <span>1</span></a></li>
      </ul>
    </li>
        <li class="leftnavitem3"><a href="#" class="collapsed">Category 3 <span>1</span></a>
      <ul>
    <li class="subitem1"><a href="#">Link 1 <span>1</span></a></li>
    <li class="subitem2"><a href="#">Link 2 <span>1</span></a></li>
    <li class="subitem3"><a href="#">Link 3 <span>1</span></a></li>
      </ul>
    </li>
    <li class="leftnavitem4"><a href="#" class="collapsed">Category 4  <span>1</span></a>
      <ul>
        <li class="subitem1"><a href="#">Link 1 <span>1</span></a></li>
    <li class="subitem2"><a href="#">Link 2 <span>1</span></a></li>
    <li class="subitem3"><a href="#">Link 3 <span>1</span></a></li>
      </ul>
    </li>
    <li class="leftnavitem5"><a href="#" class="collapsed">Category 5 <span>1</span></a>
      <ul>
            <li class="subitem1"><a href="#">Link 1 <span>1</span></a></li>
    <li class="subitem2"><a href="#">Link 2 <span>1</span></a></li>
        <li class="subitem3"><a href="#">Link 3 <span>1</span></a></li>
          </ul>
    </li>
  </ul>
 </div>

私は精神的にコーヒーを買いますか?私の惨めさを終わらせる人のために。

4

1 に答える 1

0

$.cookie存在しません。どのプラグインを使用していますか?

それ以外の場合は、 AmplifyJSStoreを使用することをお勧めします。クッキーは、Html5の時代に物事を保存するための最良の方法ではありません。

于 2012-08-18T12:11:28.197 に答える