2010-03-14 3 views
6

은 단순히 다음과 같은 코드가 있습니다 jQuery live() ... 링크를 활성화하려면 두 번 클릭해야합니까?

$(function() { 
    $('a.add-photos-link').live('click', function(e) { 
    $(this).colorbox({ 
     overlayClose: false, 
     onComplete: function() { 
     $('#add_photos').submit(function(e) { 
      // more stuff to do 
      e.preventDefault(); 
     }); 
     } 
    }); 
    e.preventDefault(); 
    }); 
}); 

그러나이 두 번 밖에 링크를 하나의 버튼으로 클릭 한 후 작동하는 것 같다. 이러한 링크는 동적으로 페이지 ( a.add-photos-link)에 추가됩니다.

왜 이런 일이 발생하고 처음 한 번 클릭 한 다음에 화재가 발생하도록 고칠 수 있습니까?

+0

? DOM 트리를 만든 후에 실행됩니까? –

답변

7

현재 코드는 링크에 대한 색 상자 만 작성합니다. 색상 상자를 열지 않기 때문에 링크를 두 번 클릭해야합니다. 한 번 만들고 다시 링크를 열어야합니다.

당신은 open 옵션 (as documented)를 사용할 수 있습니다 colorbox과 같이, 즉시 열을 생성 할 때 : 자바 스크립트 페이지에있는

$(this).colorbox({ 
    open: true, 
    overlayClose: false, 
    onComplete: function() { 
    // ... 
    } 
}); 
+0

완벽. 나를 위해 그것을 정리 주셔서 감사합니다! – neezer

+0

비슷한 문제가 있습니다. 페이지에 이미지가 있고 이미지에 onclick 이벤트를 추가했습니다. open : true를 지정했지만 여전히 두 번의 클릭이 필요합니다. –

+1

@MarcWilson 귀하의 세부 사항으로 새로운 질문을 만드십시오. – brianpeiris