2012-02-17 3 views
2

메신저 jquery/javascript에 새로 추가되었습니다. 그래서 여기에, 나는이 js 코드를 swipedown 및 swipeup에 대해 찾았습니다. 그러나 그것을 사용하거나 호출하는 방법을 모른다. javascript/jquery에서이 함수를 사용/호출하는 방법?

는 JS 번호 :

$('#swipedown').live('swipedown', function(event, data){ 
        alert('swipes') 
      }); 

:

(function() { 
// initializes touch and scroll events 
    var supportTouch = $.support.touch, 
      scrollEvent = "touchmove scroll", 
      touchStartEvent = supportTouch ? "touchstart" : "mousedown", 
      touchStopEvent = supportTouch ? "touchend" : "mouseup", 
      touchMoveEvent = supportTouch ? "touchmove" : "mousemove"; 

// handles swipeup and swipedown 
    $.event.special.swipeupdown = { 
     setup: function() { 
      var thisObject = this; 
      var $this = $(thisObject); 

      $this.bind(touchStartEvent, function(event) { 
       var data = event.originalEvent.touches ? 
         event.originalEvent.touches[ 0 ] : 
         event, 
         start = { 
          time: (new Date).getTime(), 
          coords: [ data.pageX, data.pageY ], 
          origin: $(event.target) 
         }, 
         stop; 

       function moveHandler(event) { 
        if (!start) { 
         return; 
        } 

        var data = event.originalEvent.touches ? 
          event.originalEvent.touches[ 0 ] : 
          event; 
        stop = { 
         time: (new Date).getTime(), 
         coords: [ data.pageX, data.pageY ] 
        }; 

        // prevent scrolling 
        if (Math.abs(start.coords[1] - stop.coords[1]) > 10) { 
         event.preventDefault(); 
        } 
       } 

       $this 
         .bind(touchMoveEvent, moveHandler) 
         .one(touchStopEvent, function(event) { 
        $this.unbind(touchMoveEvent, moveHandler); 
        if (start && stop) { 
         if (stop.time - start.time < 1000 && 
           Math.abs(start.coords[1] - stop.coords[1]) > 30 && 
           Math.abs(start.coords[0] - stop.coords[0]) < 75) { 
          start.origin 
            .trigger("swipeupdown") 
            .trigger(start.coords[1] > stop.coords[1] ? "swipeup" : "swipedown"); 
         } 
        } 
        start = stop = undefined; 
       }); 
      }); 
     } 
    }; 

//Adds the events to the jQuery events special collection 
    $.each({ 
     swipedown: "swipeupdown", 
     swipeup: "swipeupdown" 
    }, function(event, sourceEvent){ 
     $.event.special[event] = { 
      setup: function(){ 
       $(this).bind(sourceEvent, $.noop); 
      } 
     }; 
    }); 

})(); 

이 I 위의 코드

<a href="<?php echo base_url();?>home/drop_down" id="swipedown"></a> 
를 사용하여 트리거 할 앵커 원소

이 같은 함수를 호출하려고 그러나 그것은 나에게 경고를 촉구하지 않았다. >. <. 도움이 될 것입니다.

+0

은 당신이 플러그를 찾을 때마다 문서가 아닌가? – Scott

+0

코드가 자동으로 실행됩니다. 즉, 스크립트가로드되는 즉시이 함수가 실행됩니다. 그리고 그것은 jQuery 이벤트 컬렉션에 swipeupdown 이벤트를 추가합니다. – Zlatko

+0

@scott 어떤 문서도 찾지 못했고 링크는 다음과 같습니다. http://snipt.net/blackdynamo/swipe-up-and-down-support-for-jquery-mobile –

답변

1

last()가 생성 된 후 함수를 호출하고 있습니다. 이 기능은 jquery에 새로운 가능성을 부여합니다. 아마 당신은이 일을 호출 할 수 있도록 :

$('#swipedown').bind('swipedown', function(e){ 
    alert('test'); 
}); 
+0

는 코드를 시도했지만 응답은 없지만 클릭 이벤트에 바인딩하면 경고가 트리거됩니다. 이것은 매우 실망 스럽다. –

+0

$ (window) 객체에 이벤트를 첨부하려고 시도합니다. 그럴 수도 있습니다. – Schiavini

+0

'setup : function() {'다음에 경고를 추가 할 수도 있습니다. 따라서 적어도 이벤트가 있는지 여부를 알 수 있습니다 본드는 작동하지만 작동하지 않거나 이벤트가 전혀 본드가 아닙니다. – Schiavini

0

코드는 (문서화) 추가됩니다 jQuery events special collection이 당신이 다른 jQuery를 이벤트로 swipeup 또는 swipedown를 부를 수 있다는 것을 의미한다.

예 : 같은 p 요소에 일어나고 swipedown 행동에 트리거됩니다

$("div p").live('swipedown',function() { 
    alert("swiped down"); 
}); 

:

<body> 
<div> 
    <h1>hello world</h1> 
    <p>pull me down</p> 
</div> 
</body>