这是为了显示诊断页面的检查。我有一个.append(not_ok)但是当swf文件加载100%时我想删除not_ok append然后添加一个.append(ok)。
function callbackfunk(e){
$(".FlashNotLoaded").css("color", "red").append(not_ok);
var timer = setInterval(function(){
if(e.ref.PercentLoaded() === 100){
$(".FlashLoaded").remove();
$(".FlashLoaded").css("color", "green").append(ok);
}
}, 1000);
}
swfobject.embedSWF("/static/diag/countdown.swf", "flashDiv", "550", "400", "8.0.0", "expressInstall.swf", flashvars, params, attributes, callbackfunk);
.append(not_ok)将被删除,但.append(ok)将不会替换它。我试过了 .replaceWith(ok),但这似乎也无效。
答案 0 :(得分:2)
通常使用jQuery,您可以将两个页面都保留在同一位置。 jQuery(notOkSelector).hide();
和jQuery(okSelecter).show();
。
隐藏使对象display:none
,并显示反转。
编辑:只要对象已经在DOM中(默认情况下为display:none;
)...
显示notLoaded
:
$(".FlashLoaded").hide(); // it doesn't hurt to hide an already hidden object.
var notLoaded = $(".FlashNotLoaded");
notLoaded.css( 'color', 'red' );
notLoaded.show();
隐藏notLoaded
并显示ok
:
$(".FlashNotLoaded").hide();
var flashLoaded = $(".FlashLoaded");
flashLoaded.show();
flashLoaded.css( 'color', 'green' );
编辑包括您的上述代码:您的coude可能如下所示......
function callbackfunk(e){
$(".FlashLoaded").hide();
$(".FlashNotLoaded").css("color", "red").show();
var timer = setInterval(function(){
if(e.ref.PercentLoaded() === 100){
$(".FlashNotLoaded").hide();
$(".FlashLoaded").css("color", "green").show();
clearInterval(timer);
}
}, 1000);
}
答案 1 :(得分:0)
这一行
$(".FlashLoaded").remove();
从DOM中删除元素,因此以下行不能向DOM附加任何内容
$(".FlashLoaded").css("color", "green").append(ok);
我想您想要删除ok
。
答案 2 :(得分:0)
您是否要添加新的HTML标记?如果是这样,你可以使用jQuery replaceWiht()
,它用一个新元素替换现有元素。