2010-05-22 167 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發送不正確的信息,它只會失敗,沒有解釋。謝謝您的幫助。