2009-03-03 5 views
1

첫 번째 큰 자바 스크립트 웹 애플리케이션을 만들려고 할 때 무엇을해야하는지 개념적으로 이해하는 데 문제가 있습니다.특정 콘텐츠에만 적용되는 자바 스크립트 이벤트 다루기

사용자가 선택한 탭에 따라 컨테이너 안에 다른 콘텐츠가 표시됩니다. 콘텐츠는 단순한 텍스트 이상이며 다른 자바 스크립트 기능과 이벤트를 사용합니다. 야후! UI 라이브러리의 "TabView"구현이지만이 문제를 처리하는 방법은 다른 Tab 접근법에도 적용됩니다.

는 각 탭 (예를 들어, MYAPP.modules.tabCalendar 및 MYAPP.modules.tabJournal)에 대해 별도의 모듈을 만들기 : 내가 뭘 생각하고 있었는지

는 다음과 같은 기본적이었다. 사용자가 다른 탭을 클릭하거나 브라우저 버튼을 사용하여 이전 탭 상태로 이동하면 MYAPP.modules [oldModule] .disable() 및 MYAPP.modules [newModules] .enable()을 호출 할 수 있습니다. 이러한 함수는 사용자 지정 이벤트 (예 : 컨테이너에 연결된 일반 클릭 핸들러)를 구독 또는 가입 취소합니다.

이벤트를 처리하는 또 다른 방법은 단일 글로벌 클릭 처리기를 갖는 것일 수 있습니다. 클릭이 컨테이너 내부에있는 경우 현재 선택되어있는 탭을 확인하고 MYAPP.modules [currentTab] .onClick()에 클릭 이벤트를 보냅니다.

또는 글로벌 클릭 핸들러는 모듈이 페이지로드 이후에 가입 한 사용자 정의 이벤트를 발생시킬 수 있으며 각 모듈의 onClick 이벤트가 실행되고 아무 일도하지 않아도되는지 여부를 결정합니다.

많은 옵션이있는 것 같지만 이런 일을하는 가장 좋은 방법에 대해 이야기하는 리소스를 찾는 데 어려움을 겪고 있습니다. 나는 올바른 길을 가고 있는가? 어떻게해야합니까?

+0

기존 "TabStrip"구성 요소를 사용하고 계십니까? 아니면 자신 만의 발명을위한 것입니까? –

+0

@ crescentfresh : YUI TabView 구성 요소를 사용하고 있으며이를 반영하기 위해 내 의견을 편집했습니다. –

+0

질문을 이해할 수 있을지 확신하지 못합니다. 각 탭의 요소가 고유하지 않으므로 각각 독립적으로 이벤트를 설정할 수 있습니까? –

답변

1

TabView에 이미 빌드 된 이벤트를 사용하여 JS가 작업을 수행하도록 대기열에 넣습니다. 탭

http://developer.yahoo.com/yui/tabview/#handlingevents

당신이 이전/다음 탭을 선택했다됩니다 변경 예 : JS 그것이 무엇을해야하는지 파악하기에 충분한 이상을해야한다. 이벤트를 살펴보고 그 내용을 기반으로 무언가를 할 수있는 번역 레이어를 작성하고 싶지만 그럴 필요는 없습니다.

1

저는이 문제에 약간 희미합니다.

  1. 예, 코드를 모듈화해야합니다.
  2. 각 모듈에 해당 컨테이너의 요소에 대한 이벤트 처리기를 설정하십시오.

그게 전부입니다. YUI TabView는 탭 전환을 처리하므로 아무 것도 활성화/비활성화 할 필요가 없습니다.

관련 문제