2013-11-27 7 views
1

부트 스트랩 2.3 popover 내에서 일부 html 코드를 표시합니다. 그리고 그것을 클릭하면 js 함수를 트리거해야하지만 그렇게하는 데는 어려움이 있습니다.부트 스트랩 내부에서 js를 실행 popover 내용

popover 내부에서 렌더링되는 HTML이 포함 된 div를 클릭하면 js 함수가 제대로 실행되지만 팝업 자체 내부의 내용을 클릭하지 않으면 js 함수가 제대로 실행됩니다. 여기

내 커피

$('[data-toggle~=popover]').popover({ 
    html: true 
    content: -> 
    $("#content").html() 
}) 

$(".updateit").on "click", -> 
    console.log "pippo" 

및 테스트 목적 DIV 번호 내용에 대한 HTML

<a data-placement="right" data-toggle="popover" href="#">click me</a> 
<div id="content"> 
    <div class="updateit" style="color:red">abc</div> 
</div> 

은 숨겨지지하고 나는 그것을 클릭하면, "pippo는"그러나 경우, 콘솔에 출력됩니다 나는 popover 내용 (html은 똑같이 보인다)을 클릭한다. 아무 것도 콘솔에 출력되지 않는다.

popover 콘텐츠 내부에서 js 함수를 호출하는 방법이 있습니까?

감사합니다.

답변

2

이것은 일반적인 jQuery 이벤트를 잡아 둔 것 같습니다. Popover를 만들기 전에 $(".updateit").on "click",() -> ...이 실행 중일 수 있습니다. 이 특정 함수는 클릭 이벤트를 기존 요소에만 바인딩합니다. 새로운 이벤트는 적용되지 않습니다. Popover는 실행 후 'updateit'클래스로 자체 요소를 생성하므로 이벤트는 적용되지 않습니다.

다행히도이 수정 프로그램은 매우 쉽습니다. $(document).on 'click', '.updateit',() -> .. 트릭을해야합니다. 이것은 작성된시기에 관계없이 문서 내의 'updateit'클래스의 모든 요소에 적용됩니다.

관련 jsbin - http://jsbin.com/ALESUXib/1/edit