0

这是为了显示对诊断页面的检查。我有一个 .append(not_ok),但是当 swf 文件 100% 加载时,我想删除 not_ok 附加,然后添加一个 .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) 但这似乎也不起作用。

4

3 回答 3

2

通常使用 jQuery,您可以通过将两者留在页面上的同一位置来实现。jQuery(notOkSelector).hide();jQuery(okSelecter).show();

Hide 生成对象display:none,而 show 则相反。

编辑:只要对象已经在 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' );

编辑包括您的上述代码:您的代码可能如下所示...

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);
}
于 2013-05-29T20:01:19.733 回答
0

这条线

$(".FlashLoaded").remove();

从 DOM 中删除元素,因此以下行不能将任何内容附加到 DOM

$(".FlashLoaded").css("color", "green").append(ok);

我想你想删除ok

于 2013-05-29T20:01:38.797 回答
0

您是否附加了新的 HTML 标签?如果是这样,您可以使用 jQuery replaceWiht(),它将现有元素替换为新元素。

于 2013-05-29T20:18:38.197 回答