Jquery-UI: диалог не является ошибкой функции - PullRequest
1 голос
/ 25 сентября 2010

например я называю это через newDialog("This is title !", "this is my content");

function newDialog(mytitle, mycontent){
   var $dialog = $('<div id="mydialog"></div>')
        .html(mycontent)
        .dialog({
            autoOpen: false,
            modal: false,
            title: mytitle
        });
    $dialog.dialog('open');
    return false
}

Это ошибка

Ошибка: $ (""). Html (mycontent) .dialog не является функцией

Что это значит?Я убедился, что все файлы jquery-UI и jquery js полностью загружены с помощью плагина firebug, чтобы подтвердить все это.

Я не понимаю, почему он вдруг перестал работать.Я пробовал это с $ (документ) .click (newDialog);и $ ('body'). делегат (': not (#mydialog *, #mydialog)', 'click', newDialog);но ошибка не уходит.Последний используется, чтобы новые диалоги не появлялись, если диалог был случайно нажат.

$(top.document).ready(function () {   
var fruits = new Array();

   $(document).click(newDialog("happy title", "happy content to keep everyone happy"));
   //$('body').delegate(':not(#mydialog *, #mydialog)','click', newDialog);

});

Ответы [ 2 ]

5 голосов
/ 25 сентября 2010

Для обновленного вопроса: У вас все еще возникают те же проблемы, что и у bfeore, при его вызове так:

$(document).click(newDialog);

Он вызывается без каких-либо параметров это означает, что .html() все еще получает undefined переданный. Вам необходимо передать параметры, например:

$(document).click(function() { newDialog("Title", "Content"); });

Или дать параметрам некоторые значения по умолчанию, например:

function newDialog(mytitle, mycontent){
  mytitle = mytitle || "Default Title";
  mycontent = mycontent || "Default Content";

Для исходного вопроса: Ваши имена переменных отключены, это:

.html(mycontent)

Должно быть:

.html(mycon)

В настоящее время, поскольку оно не определено, оновызов .html() возвращение строки назад, а не установка html.То же самое верно для заголовка, ваш параметр mytit, переменная, которую вы пытаетесь использовать, mytitle.

1 голос
/ 25 сентября 2010

Убедитесь, что плагин dialog установлен правильно. Не должно быть никаких других причин, почему это не должно работать.

Могу ли я воспользоваться этой возможностью для некоторой бесстыдной саморекламы , чтобы предложить вам альтернативу. Я написал плагин jQuery, который делает то, что вы пытаетесь сделать. Это открытый источник, если вы заинтересованы: http://code.google.com/p/dialogwrapper/

...