2014-04-28 10 views
0

매우 혼란스러운 질문이 있습니다. 매번 나는 그것이 가장 가까운 "DIV"를 얻는다는 "체크 박스"를 확인하고 클래스 "hilight" "표시"를 추가하고 로컬 저장이 "표시"전화에 항목을 설정합니다. div 1에서 2로 전환 할 때 "hilight"클래스를 제거하지만 클래스를 "marked"로 유지합니다. 나는 로컬 저장을 얻고, localStorage 가져 오기 및 div에 클래스 추가

JS 바이올린 "표시"한 div에 다시 클래스 "hilight"를 추가하기 위해 노력하고있어

: http://jsfiddle.net/b4KgV/

HTML

<button class="1st">show 1st</button> 
<button class="2nd">show 2nd</button> 

JS

localStorage.clear(); 

$(document).on('click', ':checkbox', function() { 
    if ($(this).is(':checked')) { 
     $(this).closest("div").addClass('hilight marked'); 
     localStorage.setItem("marking","yes"); 
    } 
     else { 
       $(this).closest("div").removeClass('hilight marked'); 
      } 
}); 

$(".1st").on('click', function() { 
    $(".second").css('display','none'); 
    $(".second").removeClass('hilight'); 
    $(".first").css('display','block'); 
}); 

$(".2nd").on('click', function() { 
    $(".first").css('display','none'); 
    $(".first").removeClass('hilight'); 
    $(".second").css('display','block'); 
}); 

if (localStorage.getItem("marking")) { 
    $(".marked").closest("div").addClass('hilight'); 
}; 

thx.

답변

1

Localstorage는 키로 이동합니다. 아시다시피 값을 분리하여 유지하려고했습니다. 이 바이올린

http://jsfiddle.net/b4KgV/11/

$(document).on('click', ':checkbox', function() { 
    var div = $(this).closest("div").attr("id") 
    if ($(this).is(':checked')) { 
     $(this).closest("div").addClass('hilight marked'); 
     localStorage.setItem(div, true); 
    } else { 
     $(this).closest("div").removeClass('hilight marked'); 
     localStorage.setItem(div, false); 
    } 
}); 

$(".1st").on('click', function() { 
    console.log("test") 
    if (localStorage.getItem("firstDiv") == "true") { 
     $(".first").closest("div").addClass('hilight'); 
    }; 
    $(".second").css('display', 'none'); 
    $(".second").removeClass('hilight'); 
    $(".first").css('display', 'block'); 
}); 
+0

어떤 ID가 무작위로 생성되는 경우를보십시오 ? 내 ID는 자바 시스템에 의해 생성 된 변수입니다 ... "$ item.id"는 변수 – vbotio

+0

K입니다. 각 div에 탐색 버튼이 있습니까? 그렇다면 단추를 추가 할 위치에 루프가 있어야합니다. 과 같이 속성을 속성에 추가 할 수 있습니다. 그런 다음 코드에서 간단하게 id = $ (this) .attr ("div-id")를 수행 할 수 있습니다. 이드가 있으면 클래스를 추가/제거 할 수 있습니다. – sylar

관련 문제