2017-03-02 4 views
0

Lorsque je sélectionne une image qui s'ouvre déjà avec une zone de recadrage par défaut, que j'ai définie avec la méthode (setSelect), si je confirme la recadrage sans modifier la zone de recadrage, l'image est enregistrée sans recadrer provoquant des erreurs dans ma base de données, je suppose que je ne remplis pas les variables de sélection JCrop. J'ai également remarqué qu'il a une méthode qui remplit ces variables (onSelect: selectcanvas), mais elle n'est appelée qu'après avoir modifié la zone de recadrage.JCrop Variables de sélection non remplies

Voici mon script JCrop

$("#canvas").Jcrop({ 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

Et la méthode onSelect

function selectcanvas(coords) { 
    prefsize = { 
    x: Math.round(coords.x), 
    y: Math.round(coords.y), 
    w: Math.round(coords.w), 
    h: Math.round(coords.h) 
    }; 
} 

Est-il possible de commencer les variables avec une valeur par défaut?

Répondre

0

Modifier ceci:

$("#canvas").Jcrop({ 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

à ceci:

$("#canvas").Jcrop({ 
    onChange: selectcanvas, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

Cela fera en sorte que vos fonctions sont définies d'abord, Cela fera en sorte que lorsqu'un utilisateur ajoute une image à votre entrée la L'événement change sera appelé et vos variables seront initialisées.