2010-12-16 12 views
18

¿cómo puedo quitar una imagen?¿Cómo elimino jcrop?

Estoy agregando jcrop con a;

$('#imgThumbnailer').Jcrop({ 
    onChange: statusCrop, 
    onSelect: statusCrop, 
    bgColor: 'black', 
    bgOpacity: .3 
}); 

¿Cómo hago para deshacerlo?

Editar:

$('#imgThumbnailer').attr("src", $obj.attr('thumbnailer_link')); 

var dlg = $("#ThumbnailDialog").dialog({ 
    modal: false, 
    draggable: false, 
    position: 'center', 
    zIndex: 99999, // Above the overlay 
    closeText: '', 
    width: 510, 
    height: 500, 
    open: function() { 
     $('body').css("overflow", "hidden"); 
     if ($.browser.msie) { 
      $('html').css("overflow", "hidden"); 
     } 
     $("#loader").show(); 

     var ratio = parseFloat($obj.attr('thumbnailer_ratio')); 
     jcrop_api = $.Jcrop('#imgThumbnailer', { 
      onChange: statusCrop, 
      onSelect: statusCrop, 
      bgColor: 'black', 
      bgOpacity: .3, 
      aspectRatio: ratio 
     }); 

    }, 
    close: function() { $('body').css("overflow", "auto"); if ($.browser.msie) { $('html').css("overflow", "auto"); } $("#loader").hide(); }, 
    buttons: { 
     'Set Thumbnail': function() { 
      $(this).dialog('close'); 
     }, 
     Cancel: function() { 
      jcrop_api.destroy(); 
      jcrop_api = null; 
      $(this).dialog('close'); 
     } 
    } 
}).parent(); 
dlg.appendTo(jQuery('form:first')); 

El código anterior no funciona para mí. Creo que esto tiene que ver con el hecho de que estoy usando esto dentro de un diálogo de jquery. http://code.google.com/p/jcrop/issues/detail?id=21

No estoy seguro de cómo solucionarlo.

Respuesta

27

Editar: Parece que necesita mantener una referencia a la API cuando agrega jcrop a una imagen.

// assign jcrop to jcrop_api 
var jcrop_api = $.Jcrop('#imgThumbnailer', { 
    onChange: statusCrop, 
    onSelect: statusCrop, 
    bgColor: 'black', 
    bgOpacity: .3 
}); 


// when you want to remove it 
jcrop_api.destroy(); 
+0

Cuando puedo inicializar jcrop de esa manera, no inicializa : -/ – Justin808

+0

¿Aparece un error? –

+0

es demasiado corto: he puesto el código anterior. Creo que es un error en jcrop. @Jeff the Bear: Ningún error. todos los divs de JCrop se configuran a 0px alto y ancho con display: ninguno. – Justin808

75

Me preguntaba lo mismo y después de leer la fuente he encontrado una solución simple que funciona en v0.9.8 (el otro respuestas publicadas sólo funcionan con la versión dev actualmente). Si usted inicia Jcrop así:

$('#imgThumbnailer').Jcrop({ 
    onChange: statusCrop, 
    onSelect: statusCrop, 
    bgColor: 'black', 
    bgOpacity: .3 
}); 

entonces se puede obtener acceso a la API y destruir Jcrop a través de:

JcropAPI = $('#imgThumbnailer').data('Jcrop'); 
JcropAPI.destroy(); 

Es probable que sea demasiado tarde para que el autor de la pregunta, pero espero que esto sea útil a alguien que tropieza sobre esta página de google!

+2

De hecho, esto fue muy útil para mí. ¡Gracias por compartir! –

+0

Esto me impidió arrancarme el pelo. Gracias por ese pedazo. – yaegerbomb

+0

En particular, parece haber cierta interacción con jQuery UI Dialog, lo que significa que de esta manera es el camino a seguir, incluso ahora la versión de lanzamiento es hasta '0.9.10'. – AakashM