2010-10-05 40 views
0

我有一個按鈕,點擊時應該打開一個jQuery UI對話框。它可以在FF3,FF4,Chrome和IE8上使用ChromeFrame。它在正常的IE8中不起作用。我收到一個錯誤,簡單地說「需要對象」。以下是點擊呼叫的功能。jQuery IE8對象需要

function punchNonProd() 
{ 
    var HTML = ""; 
    HTML += "<tr id='burdenLine'><td><strong>Description</strong></td><td><input class='ui-corner-all' type='text' id='diaNP' size='12'></td></tr>"; 
    HTML += "<tr><td>&nbsp;</td><td><span class='button' onClick='sendPunch(\"NONPROD\", $(\"#diaNP\").val(), $(\"#loadedMech\").val());'>Use Description</span></td></tr>"; 
    HTML += "</table>"; 

    $("#dialogSmall").dialog("option", "title", 'Non-Billable Punch') 
        .html(HTML) 
        .dialog("option", "width", 800) 
        .dialog("open") 
        .dialog("option", "position", "center") 
        .dialog("option", "buttons", { "Kochtinuous": function() { punchKochImpr(); }, 
                "Break": function() { sendPunch("NONPROD", "BREAK", $("#loadedMech").val(), isLeader); }, 
                "Clean Up": function() { sendPunch("NONPROD", "CLEAN_UP", $("#loadedMech").val(), isLeader); }, 
                "Huddle": function() { sendPunch("NONPROD", "HUDDLE", $("#loadedMech").val(), isLeader); }, 
                "Meeting": function() { sendPunch("NONPROD", "MEETING", $("#loadedMech").val(), isLeader);} }); 
    loadDefaults(); 
} 

我使用jQuery UI 1.8.4和jQuery 1.4.2

在未壓縮的jQuery文件的4481行出現的錯誤。

UPDATE

我能弄清楚這個問題來自於命令$("#dialogSmall").html(HTML);。我仍然試圖弄清楚爲什麼會發生這種情況。

+0

.dialog()的多個實例是否跳過它?也許你可以嘗試將它們合併成一個。 – orolo 2010-10-05 20:12:15

+0

@orolo我有其他地方有倍數,它可以毫無問題地處理它們。 – Jason 2010-10-05 20:16:44

+1

您應該備份調用堆棧並查找代碼中的哪一行導致該問題。有些東西是null或未定義的消息,jQuery希望在那裏。 buttonset()是一個例如定義的方法嗎? – flatline 2010-10-05 20:32:06

回答

3

HTML變量不包含有效的HTML。如果添加缺少的標籤可能會有所幫助。

+0

我認爲你是對的。他可能將HTML變量加載到全局或其他東西中,然後丟失它的範圍......但是我不明白這會導致jQuery庫的錯誤,它應該只是渲染一個馬虎的DOM。 – Incognito 2010-10-05 20:58:27

+0

就是這樣。缺少的'

'是整個問題。我多看了一下引發錯誤的jQuery,現在我可以肯定地說,將字符串轉換爲DOM對象時發生了這種情況。非常感謝ÁlvaroG. Vicario – Jason2010-10-05 21:12:06