2011-05-11 5 views
0

기본적으로 사용자에게 특정 페이지에서 무언가를 수행하는 방법을 보여주는 유용한 DIV를 표시하고자하지만 사용자가 예를 들어 30 초. 나는 "유휴"에 의해 무엇을 의미사용자가 X 시간 동안 유휴 상태 인 경우에만 DIV 표시

입니다 : 내가되어 사용자 유휴 규칙에서 다음과 같은 조건을 제외 할 :

어떤 링크를 되지 않음을 마우스 오른쪽 버튼으로 클릭 어디서나

예외를 클릭

하지

사용자가 위/아래/왼쪽 또는 오른쪽으로 스크롤 사용자가 사이트의 빈 영역 또는 소스/링크가없는 요소 (예 : 하이퍼 링크 없음)에서 마우스 단추를 눌렀습니다. 및 키보드 버튼 누르기

이 작업을 수행 할 수 있습니까? 또는 particullar 이벤트가 발생할 때 만 감지 할 수 있습니까?

어떤 생각/제안/자원이라도 대단히 감사하겠습니다.

거품 잎에서 루트에 따라서 나을 문서에 이벤트 리스너를 추가 할 DOM 당신에게

답변

0

이벤트를 감사드립니다.

하지만 우리는 특정 요소에 클릭 이벤트에 대한 possibiliy 정지 버블 링이기 때문에, 그 경우에, 완벽하게 작동 mousedown을 등록하고 mouseup 이벤트가 도움이 될 수 없습니다 문서에 이벤트를 클릭 등록 : 매우 기본적인

var timer; // create a timer at first 
// restart timer on click 
function startIdle() { 
    timer = setTimeout(function() { /* show div */ }, time); 
} 
if (document.addEventListener) { 
    document.addEventListener('mouseup', startIdle, false); 
} 
else { 
    document.attachEvent('onmouseup', startIdle); 
} 
// start the first timer 
startIdle(); 
1

합니다. ..

var trigger = 30000 
$.(function(){ 
    setInterval('displayInf()',trigger); 

    $('body').bind('click dblclick keypress mousemove scroll', function(){ 
     clearDisplayInf(); 
    }); 
}); 

function displayInf() 
{ 
    $('body').append('<div>Your notification div</div>'); 
} 

function clearDisplayInf() 
{ 
    trigger = clearInterval(trigger); 
    trigger = setInterval('displayInf()', 30000); 
} 
트릭을 할해야

- 당신이 사업부 분리를 만들기 위해 몇 가지 스크립트를 추가하고 제거하면 다시 타이머를 시작하지만 그건 정말까지 연마 할 수 ..

+0

몸에있는 이벤트 리스너는 캡처 된 DOM 이벤트의 보트로드와 함께가는 죄수를 의미합니다. –

관련 문제