Подтвердить что ты не робот

Диалоговое окно jQuery с динамическим контентом

Я хочу создать диалоговое окно jQuery "на лету". Я использую это:

var newDiv = $(document.createElement('div')); 
$(newDiv).html('hello there');
$(newDiv).dialog();

Затем я получаю это в заголовке html:

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script>

Когда я пытаюсь запустить JS в IE7, я получаю следующую ошибку в $(newDiv).dialog(); линия: Объект не поддерживает это свойство или метод.

Кто-нибудь знает, что происходит?

4b9b3361

Ответ 1

Ваш код работает, вы можете протестировать его здесь, это означает, что у вас, вероятно, есть проблема с script include, убедитесь, что ваши файлы находятся в папке js рядом с этой страницей или если вы предполагали, что они должны быть от корневого сайта, используйте /js вместо этого.

Или рассмотрите возможность использования CDN.

Вы можете сделать код более эффективным (я понимаю, что это просто тест), например:

var newDiv = $(document.createElement('div')); 
newDiv.html('hello there');
newDiv.dialog();

Это работает, потому что newDiv уже является элементом jQuery, без причины клонировать объект каждый раз... или немного короче:

$('<div />').html('hello there').dialog();

Ответ 2

Вот альтернативный способ динамического создания диалогов и их сообщений:

     $('<div></div>').dialog({
        modal: true,
        title: "Confirmation",
        open: function() {
          var markup = 'Hello World';
          $(this).html(markup);
        },
        buttons: {
          Ok: function() {
            $( this ).dialog( "close" );
          }
        }
      });  //end confirm dialog

Смотрите в действии: http://jsfiddle.net/DYbwb/