2011-12-08 10 views
20

He intentado esto sin éxito.Configuración de la imagen del atributo src no funciona en Chrome

que desea obtener el src de una imagen y establecerla como otro es src cuando #btn se presiona:

jQuery("#btn").live("click", function() { 
    jQuery("#another_div") 
     .children("img") 
     .attr("src", jQuery(this).prev("img").attr("src")); 
    jQuery(this) 
     .prev("img") 
     .attr("src",""); 
}) 

También he intentado:

jQuery(this).prev('img').removeAttr("src"); 

Funciona bien en Firefox, Internet Explorer 7 -9 y Safari.

Solo en Chrome, la imagen no se elimina aunque la fuente cambie (src="").

+1

bien, han pasado más de un año, y esto sigue siendo un gran issue..god odio Chrome como mucho que odie IE. – vsync

Respuesta

29

Usted puede cambiarlo a

jQuery(this).attr("src", "data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="); 

tal vez?

+0

Hola Joseph, parece que esto funciona cuando haces esto. ¿Puedes explicar qué es esto que has puesto para el valor src? Ver http: // jsfiddle.net/K7SBx/1/ –

+6

Ok, lo tengo. es una cadena codificada en base64 para una imagen GIF transparente de 1px por 1px. –

+0

@ManjulaWeerasinge Estás en lo cierto. :) Debería haber explicado eso. XD Lo siento, no vi tu pregunta hasta esta mañana. –

0

intenta establecer el src primero en blanco

$(this).attr("src",""); 

continuación

$(this).removeAttr("src"); 
+0

Advertencia: No hagas esto. ¡Esto causará una solicitud de servidor adicional! http://www.bennadel.com/blog/2236-empty-src-and-url-values-can-cause-duplicate-page-requests.htm –

2

tratar de eliminar la imagen y añadir de nuevo

jQuery('#another_div').children("img").remove() 
jQuery('#another_div').append('<img>').attr("src",jQuery(this).prev('img').attr("src")); 
+1

funciona sin problemas para cromo :) tnx –

1
jQuery('#btn').live("click", function() { 
    jQuery('#another_div') 
     .children("img") 
     .attr("src", jQuery(this).prev('img').attr("src")); 
    jQuery(this) 
     .prev('img').remove(); 
}) 
3

Dado que en mi caso al hacer esto

$(this).attr("src",""); 

despejar el atributo src, pero la imagen no se anula. Por lo tanto, acabo de establecer, img etiqueta estilo de visualización de atributos a ninguno, como este

$(this).attr("src","").css("display", "none"); 

Se ocultará la imagen. Espero que funcione temporalmente para ti.

0

Esto funcionó para mí:

var $image = $('.my-image-selector'); 
$image.removeAttr('src').replaceWith($image.clone()); 

Sin embargo, tenga cuidado con cualquier controlador de eventos que podría haber unidas a la imagen. Siempre existe la withDataAndEvents y deepWithDataAndEvents opciones para jQuery clon, pero no he probado el código con ellos: http://api.jquery.com/clone/#clone-withDataAndEvents

Además, si usted quiere hacer esto de varias imágenes, es probable que tenga a utilice algo como jQuery cada.

he publicado una respuesta idéntica en una pregunta similar: Clear an IMG with jQuery

Cuestiones relacionadas