2013-06-12 3 views
0

나는 탭에서 작동하지 않는 div 슬라이더를 가지고 있지만 잘 작동하고 있습니다. 그것은 onclick 이벤트를 생각했기 때문에 작동하지 않습니다.바인딩 요소를 touchstart 및 클릭하십시오.

내가 추가 할 때, HTML에서

$('.sliderImage').live("click touchstart", function (event) { 
    alert('click event is ' + event.type); 
}); 

이 때문에이 기능의 이동을 제거한 후 ... 첫번째 경고 작품 사업부는 이동이 클릭 모든 사업부가 작동하지 않습니다. 거기에 요소를 바인딩하는 다른 방법이 있습니다.

+1

에 결합'.live()'더 이상, 그것은 사용되지 않으며 jQuery를 최신 버전에서 제거합니다. –

+0

Btw, 탭도'click' 이벤트를 발생시켜야합니다. 기본적으로'touchstart' ->'touchend' ->'click'입니다. –

답변

1

잭이 말한 것처럼 바인딩 방법으로 "라이브"대신 "on"을 사용합니다. 장치가 터치를 지원하는지 여부를 감지하고이를 바인딩의 기초로 사용하는 것이 좋습니다. 일부 장치는 클릭 및 터치 시작을 트리거하여 예측할 수없는 결과를 초래합니다.

/* Touch event support */ 
utils.POINTER_EVENT = (function() { 
//check if the browser supports touch events 
    var supportsTouch = 'createTouch' in document; 
    //base our event names on the result... 
    var obj = { 
     START: (supportsTouch) ? 'touchstart' : 'mousedown', 
     MOVE: (supportsTouch) ? 'touchmove' : 'mousemove', 
     END: (supportsTouch) ? 'touchend' : 'mouseup', 
    getPointerPosition: function(ev) { return { x: (supportsTouch) ? ev.touches[0].pageX : ev.pageX, y: (supportsTouch) ? ev.touches[0].pageY : ev.pageY }; } 
    }; 
    return obj; 
})(); 

그런 다음 당신은 사용하지 말아야 utils.POINTER_EVENT

관련 문제