2010-05-28 3 views
0

전등 스위치와 비슷한 일종의 자바 스크립트 API를 구현하고 싶습니다.스위칭 기능 상태

예를 들어 실제 HTML 페이지에는 UI로 작동하는 두 개의 버튼이 있습니다.

두 단추에는 다른 기능을 호출하는 이벤트 처리기가 있습니다.

각 기능에는 상태와 같은 코드가 있습니다.

button1.onclick=function(){ 
    $("div").click(
     //code effects 2 
    ) 
} 

button2.onclick=function(){ 
    $("div").click(
     //Code effects 2 
    ) 
} 

코드는 표면에서 잘 작동하지만 2 개의 상태 함수가 겹칩니다.

효과는 문서의 다음 다시로드까지 남은 시간 동안 발생합니다.

기본적으로 달성하고자하는 것은 1 버튼을 클릭하면 다른 버튼에서 호출 한 기능의 상태를 "OFF"로 전환하고 그 반대도 마찬가지입니다.

따라서 달성 된 효과는 중복되지 않습니다.

어쨌든 이것을 달성하거나 전문가가 올바른 방향으로 나를 가리킬 수 있습니다.

미리 감사드립니다.

답변

1

이렇게하려면 '상태'를 저장하기 만하면됩니다. 당신은 on/off 정보를 단순히 쿠키에 저장할 수 있습니다. 각 자바 스크립트 함수는 쿠키의 값을 확인 및/또는 업데이트 할 수 있습니다.

페이지로드에 당신은 당신이 원하는대로에 쿠키에 초기 상태를 설정할 수 jQuery를, 샘플을 사용

(온/오프) :

$(document).ready(function(){ 

    //set cookie to OFF state during initial load 

    //add event handler for On button 
    $('#buttonOn').click(function(){ 
     //set cookie to ON 
    }); 

    //add event handler for Off button 
    $('#buttonOff').click(function(){ 
     //set cookie to OFF 
    }); 

}); 

jQuery를 쿠키 지원을위한 많은 플러그인을 가지고있다. 내가 사용한 최고의 코드는 다음과 같습니다. http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/

+0

쿠키가 아닌 다른 방법으로 자바 스크립트를 통해 기능 블록 자체를 취소 할 수 있습니까? 가능한 경우 효과를 반전하는 것과 비슷합니까? –

+0

본질적으로 당신이 묻는 것은 2 상태 메커니즘입니다. 이렇게하는 가장 쉬운 방법은 '어딘가에'상태 정보를 저장하는 것입니다. 쿠키가 작동합니다. 또 다른 옵션은 숨겨진 필드에 있습니다. 숨겨진 필드는 브라우저가 쿠키를 차단하는 것에 대해 걱정할 필요가 없기 때문에 잘 작동 할 수 있습니다 (매우 드물지만 가능합니다). –

+0

쿠키를 사용하여 복잡한 작업을하는 이유는 무엇입니까? 그냥 간단한 변수가 작동합니다!? – Matt

관련 문제