2012-06-06 2 views
2

처음에는 이것이 사실이라고 생각했습니다. 그러나 분명히, 그것은 clearInterval되지 않습니다.별도의 함수로 액세스 할 수 있도록 setInterval을 전역 변수로 설정할 수 있습니까?

액세스하기 쉽도록 네임 스페이스로 된 글로벌 바 (vars)를 설정했습니다.

$.faux_download = {}; 
    $.faux_download._counter = 0; 

그런 다음 별도의 공유 가능 방법으로 마우스 오버 동작의 모든 세부 사항을 구분합니다.

$(".extended-cell-popup:last .job a, .extended-cell-popup:last .task a").live('hover', function(evt){ 
     SSK.calendar.init_hover_handler(this, evt); 
    }, function(){ 
     SSK.calendar.init_hover_out_handler(); 
    }); 

을 이제 마우스 오버를 : 나는

어느 내가 바인딩 live 이벤트를 사용하려면 동일한 기능을 공유 할 수있는 동적으로 객체를 추가 할 때까지

init_hover_handler: function($this, evt) { 
    $this = $($this); 
    $.faux_download._counter = setInterval(function(){ SSK.calendar.check_load_popup($this) }, 1000); 
    }, 
    init_hover_out_handler: function() { 
    clearInterval($.faux_download._counter); 
    }, 

지금이 모두 여기 를 작동 여기에서 작업하지만 명확한 간격은 새로 생성 된 동적 항목과 함께 작동하지 않는 것 같습니다.

그러나 페이지를로드 한 일부를 마우스 오버 할 경우 은 성공적으로 간격을 지우고 적절하게 작동합니다.

왜 이런 경우인지 아시겠습니까?

jQuery를 1.4.4 (다만, 때문에 저를 미워하지 않습니다.)

답변

1

일반적으로 나는이 삭제 싶지만 실제로는 재미있는 대답.

hover을 바인드 할 수 없습니다. mouseentermouseleave을 바인딩해야합니다.

+1

참. 'hover'는 실제 이벤트가 아니며'.hover (func, func)'는'mouseeneter'와'mouseleave' 핸들러를 동시에 설정하는 지름길입니다. – lanzz

관련 문제