2010-10-11 3 views
1

J'utilise jquery kwicks pour un projet et sur document prêt je fournis les fonctions suivantes.jQuery kwicks met à jour les paramètres ou les options

une première fonction de ce que les kwicks devraient faire sur le document fonction prêt qui est mon whatToDo

var whatToDo = 'mouseover'; 

$('.kwicks').kwicks({ 
    min : 10, 
    max : 480, 
    duration: 800, 
    easing: 'easeOutQuint', 
    sticky : true, 
    defaultKwick : 3, 
    event : whatToDo, 
}); 

Suivant ce que je veux faire est essentiellement quand un utilisateur clique et élément par exemple un certain div ou p à passer de 'mouseover' à 'click'

J'ai essayé ce qui suit, mais cela ne semble pas fonctionner.

$('#video').click(function(){ 
    var whatToDo = 'click';  
}); 

des suggestions?

+0

Vous devez définir la variable d'événement avant d'initialiser le plugin kwicks ... ce que vous essayez de faire ne fonctionnera pas. – Mottie

+0

ok, merci pour les heads up. – ApPeL

Répondre

1

Désolé si mon commentaire fait sonner comme il était impossible ... tout ce que vous devez faire est de mettre en place un événement personnalisé (demo):

HTML

<ul class="kwicks horizontal" > 
    <li id="kwick_1"></li> 
    <li id="kwick_2"></li> 
    <li id="kwick_3"></li> 
    <li id="kwick_4"></li> 
</ul> 

<input id="clickIt" type="checkbox">Click 

Script

$(document).ready(function() { 

    $('.kwicks li').bind('click mouseover', function(e){ 
     var clickit = $('#clickIt').is(':checked'); 
     if (clickit && e.type == "click" || !clickit && e.type == "mouseover") { 
     $(this).trigger('myCustomEvent'); 
     } 
    }) 

    $('.kwicks').kwicks({ 
     max : 220, 
     spacing : 5, 
     event: 'myCustomEvent' 
    }); 

    }); 

Pour répondre à vos besoins mis à jour, vous devez avoir une variable définie par le paramètre jw fonctions d'événement du joueur. Je n'ai pas testé le code ci-dessous, mais cela devrait fonctionner. S'il a des problèmes, alors essayez de déplacer la variable jwplaying en dehors du $(document).ready pour en faire une variable globale.

$(document).ready(function() { 
var jwplaying = false; 

$('.kwicks li').bind('click mouseover', function(e){ 
    if (jwplaying && e.type == "click" || !jwplaying && e.type == "mouseover") { 
    $(this).trigger('myCustomEvent'); 
    } 
}) 

$('.kwicks').kwicks({ 
    max : 220, 
    spacing : 5, 
    event: 'myCustomEvent' 
}); 

jwplayer("player").setup({ 
    autostart: true, 
    flashplayer: "player.swf", 
    skin: 'five/glow.zip', 
    controlbar: "bottom", 
    dock: true, 
    events: { 
    onPlay : function() { 
    /// triggers to be click 
    jwplaying = true; 
    }, onPause : function() { 
    /// triggers to be mouseover 
    jwplaying = false; 
    }, onComplete: function() { 
    /// triggers to be mouseover 
    jwplaying = false; 
    jwplayer().stop(); 
    } 
    } 
}); 

}); 

On et d'ailleurs, j'ai ajouté document à l'intérieur du $().ready comme il est not recommended par l'équipe jQuery pour utiliser cette syntaxe et il peut être éliminé dans les futures versions.

+0

comment je passerais d'une case à cocher à une autre fonction comme une fonction onPlay? jwplayer ("lecteur") configuration ({ \t \t Autostart:. Vrai, \t \t flashplayer: "player.swf", \t \t peau: 'cinq/glow.zip', \t \t controlbar: « bottom », \t \t dock: true, \t \t événements: { \t \t onPlay: function() { \t \t \t /// déclencheurs pour être cliquez sur \t \t}, \t \t OnPause: function() { \t \t \t /// déclenche être mouseover \t \t}, \t \t onComplete: function() { \t \t jwplayer().Arrêtez(); \t \t} \t \t \t}); – ApPeL

+0

J'ai mis à jour ma réponse: P – Mottie

Questions connexes