2012-08-15 41 views
0

所以我从某人那里得到了这个功能,它在等待10秒之后用swf或其他html代码取代了我的图像。Javascript/jquery setTimeout函数不能处理很长的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)""/> 

我试过使用单引号,双引号,引号引起来,它都产生山姆结果。它只是将swf与); }, 10000)""/>一起打印出来,因为它基本上忘了它的javascript(不会忘记,我只是不知道该如何解释它)x无论如何,我希望有人能帮助我,谢谢。

+0

你不是逃避你的报价,就像在你以前的问题 – Musa 2012-08-15 21:41:58

回答

1

你有一个额外"底:

<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时,我强烈建议您不要在内嵌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) ; 
}); 
0

我分开那么大将代码块插入自己的功能中,像这样jsFiddle example。这应该使维护更容易。请注意,在这个例子中,我将你的电话去掉了showStuff,这是因为我没有这个代码,并且为了一个例子而更容易将它移除,而不是编写一个虚拟函数。