2010-05-22 168 views
0

我不知道该从哪里开始。我有一个<div>,直到点击一个按钮才会出现。此函数调用的工作原理:onclick="highlight('mod_sup_div', true);"事件没有触发

function highlight(aDiv,show) { 
    if (show) { 
     Effect.Appear('Overlay',{duration: 0.5, to: .80}); 
     Effect.Appear(aDiv,{duration: 0.5}) 
     } 
    else { 
     Effect.Fade('Overlay',{duration: 0.5, to: .80}); 
     Effect.Fade(aDiv,{duration: 0.5}) 
     } 
    } 

<div>我有一个按钮,关闭该窗口。
<p class="closer"><span onclick="highlight('mod_sup_div',false)">X</span></p> 这是的不是工作。该函数甚至没有被调用,因为我做了一个alert()函数的第一行,它什么都不做。

奇怪的是,onclick="Effect.Fade(aDiv,{duration: 0.5})"确实工作。 onclick =“”工作中的其他简单javascript函数,除函数调用外。

任何帮助,为什么发生这种情况将非常感激。

谢谢,戴夫

+0

你在测试什么浏览器? – 2010-05-22 09:06:29

+0

Safari和Firefox都不起作用。 – 2010-05-23 05:59:25

回答

0

这工作完全在Firefox

<HTML> 
<HEAD> 
    <TITLE> New Document </TITLE> 
    <SCRIPT type="text/javascript"> 

    function highlight(aDiv,show) 
    { 
     if (show) { 
       /*Effect.Appear('Overlay',{duration: 0.5, to: .80}); 
       Effect.Appear(aDiv,{duration: 0.5}) */ 
       alert("Show"); 
     } 
     else { 
       /*Effect.Fade('Overlay',{duration: 0.5, to: .80}); 
       Effect.Fade(aDiv,{duration: 0.5}) */ 
       alert("hide");   
     } 
    } 
    </SCRIPT> 
</HEAD> 
<BODY> 
    <p class="closer"><span onclick="highlight('mod_sup_div',false)">X</span></p> 
</BODY> 
</HTML> 
+0

要清楚,整个highlight()函数可以工作。我通过调用'highlight('mod_sup_div',true);'紧跟着'setTimeout('highlight(\'mod_sup_div \',false)',5000);' div出现5秒后,它消失。 问题是我想从mod_sup_div中调用淡入淡出功能。如果我在任何元素上创建了“onclick =”突出显示('mod_sup_div',false)“',则事件不会触发该函数,也不会触发其他函数。这实际上更像是触发问题的事件。 感谢您的帮助。 --Dave – 2010-05-24 07:44:25

+0

Dave, 我的意思是onclick =“highlight('mod_sup_div',false)适用于我测试中的问题范围,毫无疑问,事件触发了该函数,但它看起来像可能存在一些错误导致该功能无法继续 您是否在启用FireBug后尝试过测试?看看你得到了什么!我相信你会得到一些JavaScript错误。 – Kunal 2010-05-24 08:36:57

0

对不起它已经有一段时间,很多其他的事情来重写/修复。

看起来突出显示是关键字,或Prototype或Scriptaculous内部的东西。改变函数的名字解决了整个事情。奇怪的是,我有一个名为goto()的函数,它的效果非常好!

我注意到,如果我向Prototype.js发送不正确的信息,它只会失败,没有解释。谢谢您的帮助。