Javascript/Jquery setTimeout 函数不适用于长 html

Javascript/Jquery setTimeout function not working with long html

本文关键字:适用于 html 不适用 函数 Jquery setTimeout Javascript      更新时间:2023-09-26

所以我从某人那里得到了这个函数,它的作用是在等待 10 秒后用 swf 或其他 html 代码替换我的图像,就在这里。

<input name="sample_check3" id="sample_check3" value="1" type="radio" onclick="showStuff('stage');setTimeout(function() {$('#stage').html('HTML CODE HERE'); }, 10000)""/>

如果我只是在那里放一个简单的 html 段落或标题,它会成功地用它替换图像,但是当我尝试将我的 swf 代码放在那里时,它认为 swf 嵌入代码是 HTML,基本上只是在它所在的位置立即"回显"它,而不是等待。这就是我替换它的东西。

    <input name="sample_check3" id="sample_check3" value="1" type="radio" onclick="showStuff('stage');setTimeout(function() {$('#stage').html('<OBJECT style="z-index:2; position:absolute; top:20%; left:44%;" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="320" HEIGHT="240" id="rice" ALIGN="">
<PARAM NAME=movie VALUE="rice.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#333399> <EMBED src="rice.swf" quality=high bgcolor=#333399 WIDTH="320" HEIGHT="240" NAME="rice" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> </OBJECT>'); }, 10000)""/>

我尝试使用单引号,双引号,引用引号,这一切都会产生sam结果。它只是将 swf 放在它所在的位置,并在它之后打印); }, 10000)""/>,因为它基本上忘记了它的 javascript(不是忘记,我只是不知道如何解释它 xD)无论如何,我希望有人可以帮助我,谢谢。

最后还有一个额外的"

<input name="sample_check3" id="sample_check3" value="1" type="radio" 
    onclick="showStuff('stage'); 
    setTimeout(function() {$('#stage').html('HTML CODE HERE'); }, 10000)"" /> <---

如果这不是问题,我们可能需要看到 html 正在.html() 中设置

编辑:我不知道我昨天如何错过了带有实际html的第二个示例。但是,在查看您的html时,我强烈建议您不要内联JavaScript。您可以利用 jQuery 的强大功能,并可以像这样设置您的点击处理程序:

HTML

<input name="sample_check3" id="sample_check3" value="1" type="radio" />

Javascript

$('#sample_check3').on('click', function() {
    showStuff('stage');
    setTimeout(function() {
        $('#stage').html('<OBJECT style="z-index:2; position:absolute; top:20%; left:44%;" 
            classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  
            codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
            WIDTH="320" HEIGHT="240" id="rice">
            <PARAM NAME=movie VALUE="rice.swf"> 
            <PARAM NAME=quality VALUE=high>
            <PARAM NAME=bgcolor VALUE=#333399> 
            <EMBED src="rice.swf" quality=high bgcolor=#333399 WIDTH="320" HEIGHT="240" 
                NAME="rice" TYPE="application/x-shockwave-flash" 
                PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
            </EMBED>
        </OBJECT>');
    }, 10000) ;
});

我会将这一大块代码分成它自己的函数,就像这个 jsFiddle 示例一样。这应该使维护变得更加容易。请注意,在示例中,我删除了您对showStuff的调用,只是因为我没有代码,并且删除它作为示例比编写虚拟函数更容易。