2013-04-14 21 views
7

Facendo qualche lavoro rapido utilizzando http://imakewebthings.com/jquery-waypoints ho bisogno di fare qualche azione quando l'utente scorre verso il basso per classe zona div1, ma ne hanno bisogno solo di essere fatto una volta e non ogni volta che l'utente scorre a quella posizione - solo una voltawaypoint jQuery fuoco una volta

$('.div1').waypoint(function(direction) 
{ 
    alert(CARRY OUT MY ACTION); 
}); 

questo deve accadere solo nel primo rotolo a quella sezione - su o giù.

risposta

13

Se si passa un secondo parametro alla funzione waypoint(), è possibile includere un oggetto delle opzioni di configurazione. Impostando l'opzione triggerOnce su true, il plug-in si comporterà nel modo desiderato.

$('.div1').waypoint(function(direction) 
{ 
    alert('CARRY OUT MY ACTION'); 
}, 
{ 
    triggerOnce: true 
}); 
+0

Grazie funziona perfettamente! – user1214467

+1

Si noti che l'API dei waypoint è stata modificata nella versione 3.0. http://imakewebthings.com/waypoints/api/destroy/ – aaandre

+0

C'è un modo per distruggere tutti i waypoint in un particolare elemento all'interno del gestore? –

1

Nella nuova API, sembra che non v'è più alcuna opzione triggerOnce, ma ancora può essere utilizzato il metodo waypoint.disable() dopo la prima chiamata

22

triggerOnce() è sostituito con destroy(). Basta aggiungere this.destroy().

$('.div1').waypoint(function(direction){ 
    alert('CARRY OUT MY ACTION') 
    this.destroy() 
}); 

Per ulteriori opzioni, controllare API of Waypoints.

+0

Questa è la risposta corretta per la nuova API –