2012-01-23 3 views
1

J'utilise un fichier jquery qui a une fonctionnalité de zoom d'image:Comment créer une fonction qui appelle une fonction

http://www.albanx.com/jslibs/axzoomer.js

Tout fonctionne très bien. Mais maintenant j'ai besoin d'une fonctionnalité qui n'est pas incluse avec le plugin. Lors de l'événement d'activation du zoom, le niveau de zoom par défaut doit être modifié.

J'ai tryied quelque chose comme ceci:

imageLoaded:function() 
{ 
    return this.each(function() 
    { 
     var $this = $(this); 
     $this.zoomInOut(1.5); 

     // zoomInOut(1.5); 
    }); 
}, 

Mais pas de chance ... Puisque je ne suis pas sûr de savoir comment les fonctions travaillent dans jQuery et le zoomInOut est la fonction dans la fonction que je pensais out ...

Toute aide est appréciée.

MISE À JOUR

La fonction affichée avant est intégré dans ce fichier js:

http://www.ifmi.lt/public/axzoomer/axzoomer-1.5.js (ligne 382).

Pour ceux qui ne connaissent pas le travail axzoomer: vous devez fournir 2 images en taille normale, une autre grande taille pour le zoom. Ensuite, le zoom initial commence par la mise à l'échelle de la petite image, lorsque l'échelle de l'image est supérieure à 1,2 alors la grande image est en cours de chargement.

Dans mon code depuis que j'utilise la bibliothèque jquery.reel j'ai aussi personnalisé un peu l'approche axzoomer. Lorsque le bouton de zoom est cliqué, cette fonction est appelée:

function zoomImage() 
{ 
    var value = Number ($('#image360').attr('src').split ('_')[1].split ('.')[0]); 

    $('#zoom-content').load(initiateZoom); 

    $('#zoom-content').attr ('src', 'products/1/' + value + '.jpg'); 
    $('#zoom-content').attr ('src-big', 'product/1/zoom/' + value + '.jpg'); 

    $('#zoom-content').axzoomer({ 
     'maxZoom':3, 
     'opacity':0.5, 
     'sensivity':17, 
     'showControls':false, 
     'zoomIn':'', 
     'zoomOut':'' 
    }); 
} 

Après la petite image a été chargée, la fonction initiateZoom est appelée. La fonction axzoomer ('imageLoaded'); est accessible à partir js, elle est appelée lorsque la petite image est chargée:

function initiateZoom() 
{ 
    $('#zoom-content').axzoomer ('enable'); 
    $('#zoom-content').axzoomer ('imageLoaded'); 
} 

Mais à l'intérieur de la imageLoaded (dans la fonction axzoomer.js à partir de la ligne 382) je ne peux pas atteindre la fonction zoomInOut , pour agrandir l'image lors de la première charge.

+1

Une fonction dans une fonction .... "Nous devons aller plus loin!" :-D – Quasdunk

+1

Vous avez omis quelque chose de crucial: comment ça ne marche pas? Décrivez toujours exactement ce que vous voulez/attendez et ce que vous obtenez, y compris les messages d'erreur.En outre, le titre doit être rendu beaucoup plus spécifique. Il est simple d'écrire une "fonction qui appelle une fonction": 'function foo() {}; barre de fonction() {foo()} '. – outis

+0

essayer celui-ci espère que cela aide http://stackoverflow.com/questions/1384037/binding-an-existing-javascript-function-in-jquery –

Répondre

1

ok, fait une approche différente du problème et il a été résolu en un rien de temps.

Voici la solution.

le fichier: http://www.ifmi.lt/public/axzoomer/axzoomer-1.5+.js

  1. nouveau paramètre de réglage Ajouté: initialZoom (ligne 32)
  2. Ajouté la vérification du paramètre initialZoom (ligne 382)

Les nouveaux contrôles de fonctionnalité pour la paramètre initialZoom, et s'il existe, effectue un zoom sur l'image à partir du centre de l'image lorsque le zoom-ax est initialisé.

Questions connexes