2011-01-15 4 views
0

참고 : jQuery를 배우므로 newb 질문을 용서하십시오..next_image 버튼을 클릭하면 다음 이미지로 이동하는 방법은 다른 곳을 클릭하면 닫으십시오.

나는 라이트 박스 갤러리가 있는데 갤러리의 '다음'버튼을 클릭하면 다음 이미지가 표시되지만 (이미있는 것처럼) 다른 곳에서는을 클릭하면됩니다. 페이스 박스 윈도우 팝업을 닫습니다.

나는 코드 주위에 꽤 연주하지만 주변에 붙어있어 : 그것이로

$('#facebox :not(.image_next)').click($.facebox.close)

내가 (번역),가는 곳 :

"는에서 div가 facebox 인 경우, 클릭이 이미지 인 다음 클래스에 있지 않은 경우, facebox 창을 닫습니다. "

불행히도이 클래스를 사용하는 img를 포함하여 내가 클릭 한 위치에 상관없이 창을 닫습니다.

도움이 필요합니다.

+0

더 많은 코드를 게시 할 수 있습니까? 예를 들어'next' 코드와 어쩌면 마크 업 – ifaour

답변

0

click 이벤트가 "다음"버튼에서 상위로 바뀌고 있습니다 (#facebox div).

#facebox의 처리기로 이벤트를 "보지 못하도록" "다음"버튼의 클릭 핸들러에 event.stopPropagation()을 호출하십시오.

+0

흠, 여기가 문제라고 생각하지 않습니다 .. – ifaour

+0

충분한 정보를 넣지 않은 것처럼 보입니다. 그래서 두 개의 링크가 있습니다. 렌더링 된 HTML 및 facebox js 자체에 대한 것입니다. 답변 해 주셔서 대단히 감사합니다. 감사합니다. https://github.com/defunkt/facebox/blob/master/src/facebox.js 및 http://pastebin.com/CYUPNyyw – KalElVZ

0
$('#facebox :not(.image_next)').click($.facebox.close) 

당신이 원한대로 정확하게 말하고 있습니다. 그냥 주목 해.

대신, 무슨 일이 있었는지

$('#facebox :not(.image_next), <other objects in windows>').click($.facebox.close); 

당신이 단순히 facebox의 내부에 이미지를 포함 할 것 모든하지만 '.image_next'을 말하는 것입니다보십시오. 대신 Firebug를 사용하여 제외해야 할 오브젝트가 무엇인지 판별하거나 이벤트를 취소하려는 오브젝트에만 바인드하십시오.