2013-08-05 3 views
1

슬림 박스 (http://www.digitalia.be/software/slimbox)를 jquery 용 라이트 박스 라이트 박스로 사용하고 있습니다..on()을 사용하여 슬림 박스로드하기

나는 과거에 많이 사용했지만 지금은 조금 붙어 있습니다. AJAX를 통해로드되는 양식을 가지고 있으므로 슬림 상자를 활성화하려면 .on() 함수를 사용해야합니다.

하지만 작동하지 않습니다. 나는 슬림 박스 코드를 보았고 나에게 많은 감각을 불어 넣지 않았다. 나는이 시도 :

$("#content.settings").on("click","div.scroll a.slimbox", function (e) { 
     e.preventDefault(); 
     $(this).slimbox(); 
    }); 

을 그리고 그것은 작동하지만, 단지 클릭에, 어떤 이유로이 기능에 동일한 개체를 두 번 클릭을합니다. 어떤 아이디어?

답변

3

처음으로 요소를 클릭 할 때, 요소에서 처음으로 slimbox이 클릭되지 않았을 때 문제가 발생합니다. 처음 클릭 할 때 클릭하면 초기화 된 다음 후속 클릭이 정상적으로 작동합니다. 위젯은 주위

$("#content.settings").on("click","div.scroll a.slimbox", function (e) { 
    var $this = $(this); 
    e.preventDefault(); 
    if(!$this.data('slimboxed')){ 
     $this.slimbox().data('slimboxed', true).click(); 
    } 
}); 
+0

안녕하세요! 이 작품은,하지만 난 정말 이해가 안 돼요, slimboxed 무엇입니까, 그것은 수업인가요? 설명 할 수 있니? – Chud37

+0

@ Chud37 아니오 'slimbox' 플러그인이 요소에 대해 초기화되었다는 것을 나타내는 플래그가 아닙니다. –

2

방법 중 하나를 초기화 아약스 요청이 완료된 후 다시 플러그인을 호출하는 것입니다되면

한 가지 가능한 해결책은 클릭 이벤트를 트리거하는 것입니다. 따라서 성공 방법에 이것을 추가하십시오.

$("#content.settings div.scroll a.slimbox").slimbox(); 
+0

이것은 좋은 생각입니다. 나는 과거와 비슷한 생각을 가지고 있습니다. 그러나 어떤 이유로 그것을 작동시킬 수는 없습니다. 오류가 발생하지 않습니다. – Chud37