2014-02-05 2 views
0

Я хочу добавить диалог jQuery, используя строку, содержащую html-код, хранящийся в переменной. Является ли это возможным? Вот некоторые из опробованных code.Добавить диалог, используя jQuery, используя html, сгенерированный jQuery

$("#remove-post").dialog({ 
    autoOpen: false, 
    height: 'auto', 
    width: 'auto', 
    modal: true 
}); 
$("body").delegate("a.delete-post", "click", function (e) { 
    e.preventDefault(); 
    button = $(this); 
    remove_dialog_html = '<div id="remove-post">Are you sure you want to delete this post? Once, deleted it can\'t be reversed.</div>'; 
    $('#remove-post').dialog("open"); 
}); 

ответ

1

Вы можете просто изменить HTML этого элемента.

$('#remove-post').html('<div id="remove-post">Are you sure you want to delete this post? Once, deleted it can\'t be reversed.</div>'); 

jsFiddle Demo

Edit:

Вы также можете избежать добавления диалогового окна к исходному HTML-файла, создавая и разрушая его, когда вы открываете и закрыть диалоговое окно.

$('<div></div>') 
     .appendTo('body') 
     .html(htmlContent) 
     .dialog({ 
      autoOpen: true, 
      height: 'auto', 
      width: 'auto', 
      modal: true, 

      close: function (event, ui) { 
       $(this).remove(); 
      } 
     }); 

jsFiddle Demo

+0

thnx! я так не думал, мой плохой: D – toothie

+0

@Monique См. редактирование для лучшего подхода, также если этот ответ был полезен, пожалуйста, примите его. – Itay

1

Пожалуйста, обратитесь эту ссылку link

Спасибо !!

Edit: Попробуйте это:

$(document).ready(function() { 
    $("#divModifyDatesDialog").dialog({ 
     autoOpen: false, 
     modal: true, 
     resizable: false, 
     draggable: false, 
     position: "center", 
     width: 550, 
     buttons: { 
      "Yes": { 
       click: function() { 
       ------------- 
      }, 
      "No": { 
       click: function() { 
        ------ 
       } 
      } 
     } 
    }); 
+0

я не хочу использовать какие-либо плагины – toothie

+0

Попробуйте это !! $ (документ) .ready (функция() { $ ("# divModifyDatesDialog"). Диалог ({ AutoOpen: ложь, модальные: правда, изменяемое: ложь, перетаскиваемое: ложь, положения: "центр", ширина: 550, кнопки: { "Да": { нажми: функция() { \t \t \t ------------- }, "Нет": { нажмите: функция() { ------ } }} }) ; –

0

Вы не можете инициализировать диалоговое окно JQuery, как это, так как это не в DOM во время загрузки страницы (где JQuery инициализации вещи). Что вам нужно сделать, так это инициализировать диалог после добавления html в DOM. Незадолго до $('#remove-post').dialog("open");

0

Вы ищете что-то вроде этого. Проверьте скрипту ниже. Изменил код в соответствии с вашим требованием, если это то, что вы ищете.

http://jsfiddle.net/8R7xA/1/

$("#remove-post").dialog({ 
     autoOpen: false, 
     height:'auto', 
     width:'auto', 
     modal: true 
}); 

$(document).ready(function(){ 

    var remove_dialog_html= '<div id="remove-post">Are you sure you want to delete this post? Once, deleted it can\'t be reversed.</div>'; 
    $('#remove-post').html(remove_dialog_html); 
    $('#remove-post').dialog("open"); 
}); 
Смежные вопросы