إخفاء/إظهار بسيط للأسئلة الشائعة التي يتم حفظها في ملف تعريف الارتباط

StackOverflow https://stackoverflow.com/questions/9449834

سؤال

لماذا لا يتم حفظ ملف تعريف الارتباط عند تحديث الصفحة؟

http://jsfiddle.net/jBVBL/

أم أنه من الأفضل حفظ ملف تعريف ارتباط واحد فقط بقيمة كل li مع ".active"

var hideshow = $(".hideShow");

hideshow.children().not(".active").each(function(index, value){
    var tis = $(this);

    if($.cookie('hideShow_id'+index) == index){
        tis.addClass(".active");
    } else {
        $(this).find("div").hide();
    }            
});

hideshow.find('h3').click(function(e){
    var tis = $(this);
    var tisindex= tis.parents("li").index;
        $.cookie('hideShow_id' + tisindex, tisindex);

        tis.next().slideToggle('2000');
        tis.parent().toggleClass('active');
    e.preventDefault();
});


<ul class="hideShow">
        <li class="active">
         <h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
         <div>
               <p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
             <ul>
                 <li>
                     <strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
                 <li>

                     <strong>Nam</strong> quis lectus enim, ac euismod urna.</li>
                 <li>
                     <strong>Donec</strong> varius massa augue, at feugiat tortor.</li>
             </ul>
         </div>
    </li>
    <li>
     <h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
     <div>
           <p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
         <ul>
             <li>
                 <strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
             <li>

                 <strong>Nam</strong> quis lectus enim, ac euismod urna.</li>
             <li>
                 <strong>Donec</strong> varius massa augue, at feugiat tortor.</li>
         </ul>
     </div>
    </li>
    <li>
     <h3><a href="javascript:;">Pellentesque nec leo cursus ipsum rhoncus volutpat nec eget mi.</a></h3>
     <div>
           <p>Nam velit metus, vulputate eget sodales ut, dignissim vehicula nisi. Lorem ipsum dolor sit amet</p>
         <ul>
             <li>
                 <strong>Pellentesque</strong> nec leo cursus ipsum rhoncus volutpat nec eget mi.</li>
             <li>

                 <strong>Nam</strong> quis lectus enim, ac euismod urna.</li>

         </ul>
     </div>
    </li>
</ul> 

استخدام: https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js

هل كانت مفيدة؟

المحلول

أنت تقوم بإنشاء ملف تعريف ارتباط مختلف لكل فهرس، ولا يتطابقان أبدا مع ما تبحث عنه في تحميل الصفحة.بالإضافة إلى ذلك، لديك سلاسل "اسم ملف تعريف الارتباط" مختلف "ID" VS 'VS' HIDESHOW_ID '

نصائح أخرى

 if($.cookie('hideShow-id') == index){

و

 $.cookie('hideShow_id' + tisindex, tisindex);

من الواضح أنهما ملفي تعريف ارتباط مختلفين تمامًا

يحرر:

أنت أيضًا تسيء الاستخدام بشكل فظيع index.أولًا، إنها وظيفة وليست خاصية.لكن حتى في هذه الحالة، ستحصل على فهارس مختلفة عند التحميل وتنقر لأنك تخلط بين فهرسين مختلفين

tis.parents("li").index()

هو المؤشر إذا كان li علامة بين أشقائها، حيث

.each(function(index, value)

سيعطيك فهرسًا ضمن المجموعة التي تقوم بتكرارها، والتي من الواضح أنها مجموعتين مختلفتين، بسبب .not(".active") جزء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top