2012-07-13 2 views
1

동적으로 생성 된 요소가 여러 개의 'onmouseover'스크립트로 페이지에 있습니다. jquery 스크립트를 사용하여 onmouseover을 자동으로 대체 할 수 있는지 궁금합니다. hoverintent.모든 요소를 ​​onmouseover로 대체하여 상식 문자를 사용합니다.

예 :

<div onmouseover='dothis()'>Hello</div> 
<div onmouseover='dothat()'>World</div> 
<div onmouseover='dosomething()'>Seeya</div> 

다음과 같은 JQuery와 뭔가 onMouseover와 '이벤트'바운드를 가지고있는 요소 '는 hoverintent 동등한로 전화를 교체합니다.

나는 그것이 가능하다는 것을 확신하지 못한다. 내가 어떻게 그럴 수 있겠는가?

답변

0

x-browser와 호환되지만 Chrome에서 작동하는지 확실하지 않습니다.

onmouseover 속성이 정의 된 모든 요소를 ​​가져옵니다. 각 요소를 순환하여 onmouseover 특성 값을 저장 한 다음 요소에서 특성을 지 웁니다. 그런 다음 마우스 오버시 시간 제한을 설정하고 마우스를 올리면 해제하는 각 요소에 새 마우스 오버 이벤트를 추가합니다. 타임 아웃이 실행되면 저장된 onmouseover 속성 값을 실행합니다.

기본 시간 초과 시간은 1 초 (1000ms)입니다.

jQuery를 :

$('[onmouseover]').each(function(){ 

    var _ = $(this).attr('onmouseover'); 

    $(this).attr('onmouseover', '').hover(function(){  
     $(this).data('timeout', setTimeout(function(){ eval(_); },1000));   
    },function(){   
     clearTimeout($(this).data('timeout'));   
    }); 

});​ 

바이올린 :

http://jsfiddle.net/iambriansreed/D3dmv/

+0

정말 멋진. FF와 IE8에서 바이올린을 테스트했으며 두 가지 모두에 대해 작업 했으므로 x 브라우저와 충분히 호환됩니다. – Rodolfo

+0

@Rodolfo 좋은 대답이라면 동의하십시오. – iambriansreed

+0

물론, 내 점심 시간에 다른 것이 게시되었는지보기 위해 기다리고있었습니다. – Rodolfo

관련 문제