2012-10-16 5 views
2

Je suis nouveau à Zepto et je suis en train de faire quelque chose de très simple, mais il semble que je ne peux pas le faire de quelque façon que j'essaie. Je suis en train de lier une fonction à un événement de clic dans Zepto, mais la fonction est exécuté même si l'événement ne se déclenche pas ...Evénements Zepto

Ceci est le contenu de mon fichier js:

$(document).ready(function() { 

    if (!$('.page').hasClass('.current')) { 
     $('#home').addClass('current'); 
     $('.page .content').css('display', 'none'); 
    $('#home .content').css('display', 'block'); 
} 

$('#menu-trigger').on('click', switchPage('search', 'fade')); 

function switchPage(pageID,switchType) { 
    oldPageID = '#' + $('.page.current').attr('id'); 
    newPageID = '#' + pageID; 
    if(switchType =='fade') { // Fade Effect 
     // $(oldPageID).hide(); 
     alert('done'); 
    } 
} 
}); 

Le Le problème est que la fonction s'exécute dès que je recharge le html, n'attend pas l'évènement 'click'.

Répondre

0

La différence entre spécification quel objet sera utilisé comme le rappel, et ayant la fonction d'exécuter effectivement et en spécifiant que la valeur de retour comme le rappel.

Votre code devrait lire:

$('#menu-trigger').on('click', switchPage); 
function switchPage(pageID,switchType) { 
    oldPageID = '#' + $('.page.current').attr('id'); 
    newPageID = '#' + pageID; 
    if(switchType =='fade') { // Fade Effect 
     // $(oldPageID).hide(); 
     alert('done'); 
    } 
} 
0

lorsque vous utilisez juste switchPage('search', 'fade') JS evulates la fonction et essayez de régler la valeur renvoyée, utilisez cette place.

$('#menu-trigger').on('click', function() { switchPage('search', 'fade') }); 

si vous utilisez la fonction avec le paramètre sur vous pouvez utiliser

$('#menu-trigger').on('click', switchPage); 
+0

Merci beaucoup pour la réponse utile! Je ne l'aurais jamais deviné :) – bitstream