2014-11-14 3 views
1

사이트의 여러 위치에 많은 호버 이벤트가 있습니다. 구체적으로 모두 mouseentermouseleave 함수입니다. 이제 모바일 장치에서 이벤트를 보거나 touch을 클릭하십시오. 이벤트 (나는 그들이 호출 된 것 같아) mouseenter을 트리거하지만 mouseleave은 트리거하지 않습니다. 어떻게 함수의 다른 부분을 트리거 할 수 있습니까? 문제의 한 부분입니다. 여기jquery hover 이벤트를 모바일 클릭 이벤트에 바인딩합니다.

은 일반적인 기능은 아래와 같다 방법은 다음과 같습니다

function hover() { 
    $('#my_div).mouseenter(fucntion(){ 
    $('my_selector#1',$this).show(); 
    }).mouseleave(function(){ 
    $('my_selector#1',$this).hide(); 
    }); 
} 
hover(); 

다른 부분은, mouse-enter-leave 이벤트가 어떤 장소에 click 이벤트도 있습니다 그. (예 : mouseenter 버튼을 클릭하면 위의 예를 볼 수 있습니다). 휴대 기기에서 볼 때 는 touch 사건 i가 모두 해결하고 mouseenterclick 동일한 time.How이 발사 그럼 anothor touchclickmouseenter 하나 touch 화재를 트리거하는 것을? 클릭의

예 :

function click() { 
    $('#my_div my_selector#1').click(function(){ 
    //something happens 
    }); 
click(); 

답변

2

나는 첫 번째 경우를 위해, 더 "큰"해결책이 없다,라고 말하고 싶지만. 호버링 콘텐츠가 다른 중요한 콘텐츠를 차단하면 호버링 작업을 개선하기 위해 모바일 디자인을 수정해야합니다.

두 번째 경우에는 요소 가시성을 사용하여 클릭이 수행해야하는 작업을 토글 할 수 있습니다. 예를 들어

:

function hover() { 
    if($('element').is(':visiblie')){ 
     click(); 
    }else{ 
     $('element').show(); 
    } 
} 

function click(){ 
    doStuff(); 
} 
+0

찬성 투표 에이전트 탐지를 제안하고 실행 가능한 솔루션을 제공하지 않는 :) –

관련 문제