2009-11-24 6 views
0

Salut Est-ce que quelqu'un sait pourquoi cela ne fonctionnera pas !! J'ai essayé alsorts.parseInt, parseFloat, nombre ... je ne sais pas

function loadJcrop(widthN, heightN){ 
    var run = true; 
    if(run === true) { 
     alert( parseInt(Number(widthN)/Number(heightN))); 
     jQuery(function(widthN, heightN) { 
      jQuery('#cropbox').Jcrop({ 
       onChange: showCoords, onSelect: showCoords, aspectRatio: parseInt(Number(widthN)/Number(heightN)) 
       });  
     }); 
    } 
} 

jQuery(window).load(function() { 
    loadJcrop(16, 1); 
}); 

l'alerte renvoie 16 mais rien !!

et si je mets

aspectRatio: 16 

cela fonctionne

des idées ??

+0

Débarrassez-vous de 'jQuery (function (widthN, heightN) {' et 'la fermeture associée});' –

+0

HAHAHAHHAHAHA homme bon !! –

Répondre

1

D'abord, je ferais les calculs en un seul endroit. Deuxièmement, je pense que vous êtes mieux Math.round. Plus important encore, cependant, vous utilisez des paramètres de fonction dans votre fonction interne, et je ne pense pas que vous vouliez faire cela (les variables heightN et widthN seront supprimées).

Je récrire cette fonction comme:

function loadJcrop(widthN, heightN){ 
    // This is much clearer and easier to understand. 
    var current = Math.round(Number(widthN)/Number(heightN)); 
    var run = true; 
    if(run) { // if you have a variable which is a Boolean, 
       // you should not use '==' 
     alert( current); 
     jQuery(function(/* Note the empty parameters */) { 
       jQuery('#cropbox').Jcrop({ 
         onChange: showCoords, onSelect: showCoords, aspectRatio: current) 
       });  
     }); 
    } 
} 
+0

fonctionne de la même façon mais je vois d'où vous venez ... eu un léger problème mais je suppose qu'il n'y a rien que je puisse faire à ce sujet. Ne sachez pas si vous avez déjà utilisé jCrop mais vous pouvez définir un ratio d'aspect. en utilisant tout ive écrit l'aspect réel est légèrement sorti. Mais je pense que cela peut être dû au codage jCrop. Merci. –

Questions connexes