2010-10-05 12 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

Ошибка возникает в строке 4481 несжатого файла JQuery.

UPDATE

Я был в состоянии понять, что проблема возникает из команды $("#dialogSmall").html(HTML);. Я все еще пытаюсь понять, почему это происходит.

+0

Являются ли несколько экземпляров .dialog(), сбрасывая его? Возможно, вы можете попробовать перевести их в один. – orolo

+0

@orolo У меня есть другие места, которые имеют множественные числа и обрабатывают их без проблем. – Jason

+1

Вы должны выполнить резервное копирование стека вызовов и найти, какая строка в коде вызывает проблему. Что-то имеет значение null или undefined для того, чтобы это сообщение появилось, что-то, что ожидает JQuery. Является ли buttonet() метод, который определен, например? – flatline

ответ

3

Переменная HTML не содержит допустимого HTML. Это может помочь, если вы добавите недостающие теги.

+0

Я думаю, что ты прав. Вероятно, он загрузил переменную HTML, как глобальную, или что-то потерял ее область ... Но я не вижу, как это приведет к ошибке библиотеки jQuery, она должна просто отображать неаккуратную DOM. – Incognito

+0

Так оно и было. Недостатком '

' была вся проблема. Я немного больше посмотрел на jQuery, который бросал ошибки, и теперь я могу с уверенностью сказать, что это произошло при преобразовании строки в объекты DOM. Большое спасибо Álvaro G. Vicario – Jason