2011-12-08 32 views
20

Tôi đã thử điều này mà không thành công.Đặt thuộc tính src hình ảnh không hoạt động trong Chrome

Tôi muốn nhận được src của một hình ảnh và thiết lập nó như là của người khác src khi #btn được nhấn:

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

Tôi cũng đã cố gắng:

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

Nó hoạt động tốt trong Firefox, IE7 -9 và Safari.

Chỉ trong Chrome, hình ảnh sẽ không bị xóa ngay cả khi nguồn thay đổi (src="").

+1

ok, Đã hơn một năm nay, và đây vẫn là một issue..god lớn tôi ghét Chrome càng nhiều càng tốt Tôi ghét IE. – vsync

Trả lời

29

Bạn có thể thay đổi nó để

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

có lẽ?

+0

Xin chào Joseph, có vẻ như nó hoạt động khi bạn làm điều này. Bạn có thể giải thích điều này bạn đã đặt cho giá trị src không? Xem http: // jsfiddle.net/K7SBx/1/ –

+6

Ok tôi hiểu rồi. nó là một chuỗi được mã hóa base64 cho hình ảnh GIF trong suốt 1px x 1px. –

+0

@ManjulaWeerasinge Bạn đúng. :) Tôi nên giải thích điều đó. XD Xin lỗi, tôi không thấy câu hỏi của bạn cho đến sáng nay. –

0

cố gắng thiết lập src đầu tiên để trống

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

sau đó

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

Cảnh báo: Không làm điều này. Điều này sẽ gây ra một yêu cầu máy chủ bổ sung! http://www.bennadel.com/blog/2236-empty-src-and-url-values-can-cause-duplicate-page-requests.htm –

2

thử loại bỏ hình ảnh và thêm nó một lần nữa

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

nó hoạt động cho chrome trơn tru :) 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

Vì trong trường hợp của tôi bằng cách làm này

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

xóa thuộc tính src, nhưng, hình ảnh không biến mất. Do đó, tôi chỉ đặt, hiển thị thuộc tính kiểu thẻ img thành không, như thế này

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

Nó sẽ ẩn hình ảnh. Tôi hy vọng, nó sẽ tạm thời làm việc cho bạn.

0

này đã làm việc cho tôi:

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

Tuy nhiên, hãy cảnh giác với bất kỳ xử lý sự kiện mà bạn có thể đã gắn liền với hình ảnh. Luôn luôn có những withDataAndEventsdeepWithDataAndEvents tùy chọn cho jQuery bản sao, nhưng tôi đã không kiểm tra mã với họ: http://api.jquery.com/clone/#clone-withDataAndEvents

Ngoài ra, nếu bạn muốn làm điều này cho nhiều hình ảnh, có thể bạn sẽ phải sử dụng một cái gì đó như jQuery mỗi.

tôi đã đăng một câu trả lời giống hệt nhau về một câu hỏi tương tự: Clear an IMG with jQuery

Các vấn đề liên quan