當我按下小縮略圖時,我想顯示一個大圖像。一個簡單的燈箱樣式腳本。Javascript jQuery只在IE中顯示一次Image元素。 FF工作
當我按下圖像周圍的灰色透明覆蓋區域時,CSS和圖像將從視圖中移除。此代碼已被刪除。也許錯過了需要的東西...
$(document).ready(function() {
$(".lightBobo").click(function(e) {
e.preventDefault(); // prevent to open link in new window
$(this).lightBobo();
});
});
jQuery.fn.lightBobo = function(e) {
if (e != undefined)
e.preventDefault();
return this.each(function() {
var img = new Image();
$(img).load(function() {
imgW = img.width;
imgH = img.height;
var overlay = $("<div />");
var container = $("<div />");
// Lots of css styling for <div> overlay and container image...
container.append(img); //add image to div
$("body").append(overlay); //add overlay to body
$("body").append(container); //add div to body
overlay.fadeIn("fast", function() {
container.show();
});
$(overlay).click(function() {
removeDivs();
});
function removeDivs() {
container.hide();
overlay.fadeOut("fast");
img = null;
container = null;
overlay = null;
openImgSrc = "";
}
});
});
}
問題是IE(7)沒有顯示圖像第二次我想要顯示它。我必須做一個頁面重新加載才能再次顯示圖像。它雖然工作在FF。
當我使用FireFox時,我可以在FireBug中看到每次顯示大圖像時都會附加到後面。 「舊」圖像顯示:無; 20次後,我展示了大圖,我有40個元素的覆蓋和容器(圖片)。
我不知道如何在需要時重新運行lightBobo函數。所以它在IE和FF都有效。
你介意添加所有必要的代碼到http://jsfiddle.net/,以便它更容易調試? – aolde 2010-07-29 12:16:01