2014-04-10 6 views
0

onhover 이벤트가 호출되지 않습니다. 아무도 몰라 왜?호버링 이벤트가 실행되지 않음

function prepare(){ 
    ... AJAX CALL... 
    var embed = '<video preload="auto" class="videos_class" "><source src="'+webmUrl+'" type="video/webm"></video>'; 

    $("<h1> "+title+" </h1>"+embed ).appendTo("#videos_div"); 
} 

...

$(document).ready(function(){ 

    prepare(); 

    $("video").hover(function(){ 
     this.play(); 
    },function(){ 
     this.pause() 
    }); 
}); 
+5

.. AJAX 호출을 ... '. 요소가 존재하기 전에 이벤트 처리기를 바인딩 할 수 있습니다. –

+0

확실하지는 않지만 지금처럼 데이터를 HTML에 직접 연결하지 않아도됩니다. URL과 제목을 인코딩해야합니다. 기껏해야 무효 HTML을 만들고 있으며, 최악의 경우 임의 코드 실행으로 스스로를 개방하고 있습니다. – Brad

+1

멀리 떨어진 곳에는 * event delegation *이라는 이상한 개념이 있습니다. 나는 무서운 탐구에 나서 신비의 땅을 탐험 해보길 권합니다. –

답변

0

해보십시오 document.on. DOM이 준비된 후에 추가 된 요소로 작동해야합니다. 추가 조사는 document.on를 밝혀와 혼합하지 마십시오 가져가 있지만, 별도의 마우스 오버 /로 마우스 핸들러 트릭을 수행해야합니다

아마 때문에`의
$(document).on('mouseover', 'video', function(){ 
    $(this).play(); 
}); 

$(document).on('mouseout', 'video', function(){ 
    $(this).pause(); 
}); 

jquery .on() docs

+0

닫기하지만 그게 아닙니다. –

+0

오른쪽. 'hover'는 document.on에서 작동하지 않습니다. 대신 별도의 마우스 오버, mouseout 처리기가 필요합니다. – beercodebeer