2010-11-20 136 views
0

我從來沒有真正聽說過這樣簡單的工作在每個瀏覽器中,但Firefox,所以任何人都可以在這一點上闡明一些東西?onclick javascript function will not work in Firefox

<a href="javascript:" onclick="quoteMe('name','id','yourname');" id="quote" style="border:1px solid white;color:#F1F1F1; font-weight:bold;">&nbsp;reply&nbsp;</a> 

jQuery的:在下面的第一個答案

var nameForm; 
function quoteMe(commenterName, id, name) { 
if (name == "") 
nameForm = 'Name: <input type="text" class="input" name="username" value="" />' 
else 
nameForm = '<div class="outlineTitle2">'+name+'</div>'+'<input type="hidden" class="input" name="username" value="'+name+'" />' 
if (jQuery("#replyForm"+id).length == 0) { 
jQuery("#"+id).append('<form method="post" id="replyForm'+id+'"><br /><input type="hidden" name="cid" value="'+id+'" /><input type="hidden" name="nameOfTable" value="articles" />'+nameForm+'<br />Reply: <input type="text" class="input" name="commentReply" value="'+commenterName+'" style="width:80%" /><input type="submit" value="POST" name="addReply" class="bigButton" /></form>'); 
} 
else { 
jQuery("#replyForm"+id).remove(); 
} 

}

更多的更新。 http://cl.ly/082z3g04381G3r1i2e08

+1

@Swith一些最佳做法..如果你沒有使用href屬性,更好地使用div方法。 hrefs用於SEO目的。在代碼中查找錯誤的最簡單方法是,安裝firebug並在quoteMe中放置一個斷點並檢查它是否工作。如果不是從打印警報開始。你可以很容易地找到問題...你有安裝螢火蟲。 – kobe 2010-11-20 20:54:48

+1

@switz,我認爲你的代碼中有些東西正在崩潰,你的JavaScript沒有被執行。 – kobe 2010-11-20 20:55:57

+0

沒有錯誤。當我點擊它時,沒有任何反應,也沒有錯誤出現。我會嘗試div方法並回復你。我安裝了螢火蟲。謝謝 – switz 2010-11-20 20:58:07

回答

0

你不能把一個form作爲table元素的子元素。使用表的父節點,或添加單元格。

(作爲參考,適當的縮進版本的源碼:

var nameForm; 

function quoteMe(commenterName, id, name) { 
    if (name == "") { 
     nameForm = 'Name: <input type="text" class="input" name="username" value="" />' 
    } 
    else { 
     nameForm = '<div class="outlineTitle2">' + name + '</div>' + 
        '<input type="hidden" class="input" name="username" value="' + name + '" />' 
    } 
    if (jQuery("#replyForm" + id).length == 0) { 
     jQuery("#" + id).append('<form method="post" id="replyForm' + id + '">' + 
            '<br />' + 
            '<input type="hidden" name="cid" ' + 
            '  value="' + id + '" />' + 
            '<input type="hidden" name="nameOfTable" ' + 
            '  value="articles" />' + 
            nameForm + '<br />' + 
            'Reply: <input type="text" class="input" ' + 
            '    name="commentReply" ' + 
            '    value="' + commenterName + '"' + 
            '    style="width:80%" />' + 
            '<input type="submit" value="POST" ' + 
            '  name="addReply" class="bigButton" />' + 
           '</form>'); 
    } 
    else { 
     jQuery("#replyForm" + id).remove(); 
    } 
} 

)。

5

嘗試用alert替換quoteMe,看看會發生什麼。
如果彈出警報,則表示您的功能有問題。

內聯事件在Firefox工作也沒關係,這裏是普通電話使用:

<a href="javascript:void(0)" onclick="fn(this, param1, param2)">label</a> 

更短:

<a href="javascript:" onclick="fn(this, param1, param2)">label</a> 
  • ,如果你使用的href = 「#」,你在調用onclick時需要return false,否則,哈希鍵將在地址欄中更改。它可能很煩人,尤其是在基於ajax的應用程序中。

  • 傳遞給函數this通常是有用的,它會給你點擊的參考<a>。你不需要玩ID來找回它。

+0

非常好的解釋...讓我給你+1 :) – kobe 2010-11-20 21:16:26

+0

好的,所以經過一番調查。該函數運行並將代碼放置在正確的位置。在螢火蟲它的灰色雖然並沒有出現。任何想法爲什麼它可能只是變灰了? – switz 2010-11-21 09:17:21

+0

好吧,這是設置顯示:無;根據螢火蟲計算風格。即使我手動更改顯示或CSS以阻止或內聯,它仍然沒有。我從來沒有見過這樣的事情。 ID不重疊。它適用於其他瀏覽器。啊!!!! – switz 2010-11-21 09:24:38