jQuery kullanıcı arabirimi iletişim kutusu yükleme geri aramasından sonra başlığını değiştir


111

Bu UI Dialog'da bir form gönderdikten sonra bir UI Dialog'undan başlığı değiştirmeyi seviyorum. Öyleyse geri arama işlevinde önermeliyim sonra load, ancak sonuç almadan denedim ve googledim.

Bir fikri olan var mı?

Yanıtlar:


258

İletişim yöntemlerini kullanma:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title');

Ya da doğrudan hacky:

$("span.ui-dialog-title").text('My New Title'); 

İleride başvurmak için jQuery ile google'ı atlayabilirsiniz. JQuery API çoğu zaman sorularınıza cevap verecektir. Bu durumda, Dialog API sayfası . Ana kütüphane için: http://api.jquery.com


8
Yukarıdaki "hacky" sürümünün sayfadaki TÜM diyalogların başlığını değiştireceğine dikkat edin (birden fazla oluşturduğunuz durumda).
camainc

1
birden çok seçeneği geçebilir miyim?
themhz

3
@themis mevcut sürümde .option()bir nesneyi de alan bir yöntem var, options(options)buraya bakın : api.jqueryui.com/dialog/#method-option
Nick Craver

$ ("# iletişim kutusu"). iletişim kutusu ({autoOpen: false, göster: {efekt: "kör", süre: 1000}, gizle: {efekt: "patlatma", süre: 1000}, kapat: function () {; }, title: "test"}). iletişim kutusu ("açık");
WhiteWolfza

Cevabım hala çok ilgi gördüğünden, onu buraya da göndereceğim .. stackoverflow.com/a/17745795/1315125
Igor L.

14

Daha basit bir çözüm buldum:

$('#clickToCreate').live('click', function() {
     $('#yourDialogId')
         .dialog({
              title: "Set the title to Create"
         })
         .dialog('open'); 
});


$('#clickToEdit').live('click', function() {
     $('#yourDialogId')
         .dialog({
              title: "Set the title To Edit"
         })
         .dialog('open'); 
});

Umarım yardımcı olur!


3

Özel HTML'yi jquery iletişim kutusu başlığına yerleştirmek için Nick Craver'ın hacky fikrinin bir iyileştirmesi:

var newtitle= '<b>HTML TITLE</b>';
$(".selectorUsedToCreateTheDialog").parent().find("span.ui-dialog-title").html(newtitle);

Mecbur olmadığımda hile yapmamayı tercih ederim ve HTML başlıklarını ayarlamanın jquery tarafından onaylanmış bir yolu var: _title yöntemini geçersiz kılmak. Bu SO cevabında zaten ele alınmıştır: stackoverflow.com/questions/14488774/…
cincodenada

2

Nick'in sonucunu uygulamaya çalıştım:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title');

Ama bu benim için işe yaramadı çünkü 1 sayfada birden fazla diyalog vardı. Böyle bir durumda, başlığı yalnızca ilk seferde doğru ayarlayacaktır. Komutları zımbalamaya çalışmak işe yaramadı:

    $("#modal_popup").html(data);
    $("#modal_popup").dialog('option', 'title', 'My New Title');
    $("#modal_popup").dialog({ width: 950, height: 550);

Sayfadaki her iletişim kutusunun javascript işlevi bağımsız değişkenlerine başlık ekleyerek bunu düzelttim:

function show_popup1() {
    $("#modal_popup").html(data);
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my First Dialog'});
}

function show_popup2() {
    $("#modal_popup").html(data);
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my Other Dialog'});
}

0

Daha iyi!

    jQuery( "#dialog" ).attr('title', 'Error');
    jQuery( "#dialog" ).text('You forgot to enter your first name');

İlk satır, diyalog başlığını değiştirmez. JQuery UI iletişim kutusunda böyle bir öznitelik yoktur. İkincisi, iletişim kutusunun içeriğini değiştirecek, ancak kullanıcının sorduğu bu değil. Ve bu sizin iddiyaloğunuzun öyle olduğunu varsayıyor #dialog.
Pere
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.