2012-02-17 3 views
2

im очень новый для jquery/javascript. Так вот, я нашел этот код js для swipedown и swipeup. Но не знаю, как его использовать или называть.Как использовать/вызывать эту функцию в javascript/jquery?

, ИС-код:

(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); 
      } 
     }; 
    }); 

})(); 

это якорный элемент, который я хочу, чтобы вызвать, используя код выше

<a href="<?php echo base_url();?>home/drop_down" id="swipedown"></a> 

пытался вызвать функцию так:

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

но это не подсказывало мне предупреждение. >. <. Любая помощь будет высоко оценена.

+0

не существует ли документация, где вы нашли вилку в? – Scott

+0

Код является самоисполняющим. Это означает, что как только скрипт будет загружен, эта функция будет выполнена. И он добавляет события swipeupdown в коллекцию событий jQuery. – Zlatko

+0

@scott я не нашел никакой документации, и вот ссылка: http://snipt.net/blackdynamo/swipe-up-and-down-support-for-jquery-mobile –

ответ

1

Последний() вызывает функцию после ее создания. Функция добавляет новую возможность jQuery. Таким образом, вы можете, вероятно, назвать это делает:

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

попробовал ваш код, но все равно не ответил, но когда я привязываю его к событию клика, он вызывает предупреждение. это очень расстраивает. –

+0

попытайтесь присоединить событие к объекту $ (window), возможно, оно ограничено этим. – Schiavini

+0

вы также можете попробовать добавить оповещение после 'setup: function() {', поэтому, по крайней мере, вы знаете, является ли это событие но не работает, или событие вообще не связывается. – Schiavini

0

Ваш код будет добавлен (как описано) в jQuery events special collection это означает, что вы могли бы назвать swipeup или swipedown как любое другое событие JQuery.

пример:

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

Это будет срабатывать на swipedown действие происходит на p элемента, как:

<body> 
<div> 
    <h1>hello world</h1> 
    <p>pull me down</p> 
</div> 
</body> 
Смежные вопросы