2013-10-14 2 views
2

어떻게해야합니까? 위젯을 완전히 비활성화해야합니다. 즉, 모든 인스턴스를 비활성화하고 더 이상 사용할 수없는 인스턴스를 만들 수 있습니다. 나는 검색을 시도했지만 아무것도 나타나지 않습니다.Jquery UI 위젯을 완전히 비활성화하십시오.

도움을 주셔서 감사합니다.

편집 :

더 활기찬 예.

3 개의 요소에 배치 된 위젯의 인스턴스가 3 개 있습니다. 그런 다음 위젯을 끄고 싶습니다. a) 비활성화 할 모든 작업 인스턴스 b) 나중에 ajax 즉 을 통해 호출되는 경우 해당 위젯의 다른 인스턴스가 생성되지 않도록합니다. 그런 다음 다시 작동하도록합니다. 나는 turnOn()을 호출한다.

내 위젯은 힌트 pugin이므로 사용자가 힌트를 끄면 어디에서나 스위치를 끄고 페이지의 암시 된 부분이 여전히 비동기 적으로로드되는 위치가 있습니다.

그건 내가해야 할 일입니다.

+0

전혀로드하지 않는 이유는 무엇입니까? 특정 위젯이 필요하지 않은 경우 해당 위젯없이 jQuery UI의 컴파일 된 버전을 다운로드 할 수 있습니다. http://download.jqueryui.com/download 위젯이 작동하지 않으면 빈 객체로 위젯을 덮어 씁니다. $ .widget ("ui.accordion", {}); ' – feeela

+0

@feela 아니, 그게 아니야. 위젯이 필요합니다. 전원을 껐다가 켜기 전까지는 작동하지 않아도됩니다. 나는 그 위젯을 썼다. – nainy

+0

"전원을 끈 후 전원을 켤 때까지 작동하지 않아도됩니다." 위젯을 끄는 동안 위젯을 사용하고 싶지만, 위젯이 켜져있을 때 사용하고 싶지는 않습니까? 이것은 말도 안돼. 위젯을 사용하지 않으면 더 이상 사용할 수 없습니다. 위젯을 단 하나의 인스턴스로 제한하려면 [싱글 톤 패턴] (http://en.wikipedia.org/wiki/Singleton_pattern)을 구현해야합니다.이 플러그인은 jQuery 플러그인에 자주 사용되지는 않지만 자주 사용되는 경우가 많습니다 사용자가 그들을 포함하기 때문에. 귀하의 목표/과제가 무엇인지 설명하고 의견에 그러한 세부 사항을 쓰지 말고 질문을 편집하십시오. – feeela

답변

1

위젯이 활성화되어 있지 않을 때 위젯이 명확한 지 여부에 따라 대답이 달라집니다. 예를 들어 '힌트'유형의 툴팁 인 경우 마우스를 올리면 도구 팁이 비활성 상태 일 때 툴팁이 표시되지 않습니다. 그러나 힌트의 위치를 ​​표시하기위한 서식을 추가하는 경우에도이를 취소해야합니다.

이의 먼저 간단한 예를 보자 - 우리는 마우스가 요소 위에있을 때 단지 클래스 ( filled)을 추가하는 간단한 위젯 filler이 있다고 가정합니다.

enableFiller = true; 

을 다음 위젯에 그 사항을 확인하십시오 : 그럼 그냥 전역에 변수가

$.widget("spacedog.filler", { 

    _create: function() { 
     var progress = this.options.value + "%"; 
     this.element.hover(
      function() { 
       if (enableFiller) { 
        $(this).addClass("filled"); 
       } 
      }, 
      function() { 
       $(this).removeClass("filled"); 
      } 
     ); 
    } 

}); 

Fiddle합니다. 위젯은 마우스가 위젯 위에있을 때 사용할 수 있습니다 당신은 아마 실수 '에 충실'할 수있는 호버 색상을 원하지 않기 때문에 나는 removeClass에서 플래그를 확인하지 않는

참고.

위젯이 꺼져 있어도 요소가 변경되는 경우도 있습니다. 나는 의사 코드로 로직을 다하겠습니다 :

  • 위젯에 active-widget 클래스를 추가하고 무엇이든 할 경우 위젯이 요소 (심지어 비활성 상태 일 경우)
  • base-widget 클래스를 추가 생성 필수

  • 모든 기본 위젯에서 active-widget 클래스를 제거하려면 : $(".base-widget").removeClass('active-widget'). 모든 요소에 대해 몇 가지 다른 변경 작업을 수행해야 할 수도 있지만 쉽게 찾을 수 있습니다.그것은 플래그와 전역 변수를 사용하기 때문에

  • 는 한, 다시 active-widget 클래스를 추가 켜고

당신은 위젯에 turnOn/분기점 기능을 추가 할 수 있습니다 다른 모든 것들을 조정합니다. How to declare a global variable in JavaScript?

위젯 코드 (단순화 된 버전)를 게시 할 수 있고 지금까지 시도한 것과 누군가가 도움이 될 가능성이있는 경우이 답변을 참조하십시오.

+0

고마워요. 정확하게 찾고 있었어요. – nainy

관련 문제