2011-08-12 16 views
6

Uygulamamda jquery-ui iletişim kutuları sürüyorum.JQuery UI İletişim kutuları: uygulama genelinde seçenekler

$('.another-dialog').dialog({ 
    title: 'Another dialog', 
    autoOpen: false, 
    draggable: true, 
    modal: true, 
    show: 'fade', 
    hide: 'fade', 
    width: 400, 
    position: ['center', 'center'], 
    buttons: [ 
    { text: 'Ok' }, 
    { text: 'Cancel' } 
    ], 
    open: function(event, ui) { $(".ui-dialog-titlebar-close span").html('×') } 
}); 

gerçekten diğerinden iletişim arasında farklılık tek şey buttons ve title tuşları şunlardır: Yeni bir tane ihtiyaç her seferinde, ben aşağıdaki satırları yazın. Ne ben burada istiyorum JQuery iletişim için bir uygulama çapında kurulum, bu yüzden sadece dolaylı kurmak gerekli tüm karma tuşlarıyla

$('.another-dialog').dialog({ 
    title: 'Another dialog', 
    buttons: [ 
    { text: 'Ok' }, 
    { text: 'Cancel' } 
    ] 
}); 

çağırır (i derdim - "varsayılan" kurmak).

.dialog() numaralı telefonu arayabileceğimi biliyorum, demek istediğim, her şeyi kendi başıma ayarladığım .myDialog() numaralı telefonu arayın. Ama bunu yapmak için doğru ve uygun bir yol varsa merak ediyorum.

Şimdiden teşekkürler!

+1

bu Bkz: http://stackoverflow.com/questions/2287045/override-jqueryui-dialog-default-options – Mrchief

cevap

5

Bir değişkende ortak seçenekleri koymak (veya farklı kapsamlarda bunları kullanmak istiyorsanız belge ile ilişkili data olarak) yapabilirsiniz:

$(document).data("common-dialog-options", { 
    autoOpen: false, 
    draggable: true, 
    modal: true, 
    show: "fade", 
    hide: "fade", 
    width: 400, 
    position: ["center", "center"], 
    open: function(event, ui) { 
     $(".ui-dialog-titlebar-close span").html("×"); 
    } 
}); 

Daha sonra özel seçenekleri eklemek için $.extend() kullanabilirsiniz

$(".another-dialog").dialog(
    $.extend({}, $(document).data("common-dialog-options"), { 
     title: "Another dialog", 
     buttons: [ 
      { text: "OK" }, 
      { text: "Cancel" } 
     ] 
    }) 
); 
+0

Güzel birer diyalog. Ama neden belgenin verisinde saklıyorsunuz? Neden sadece global (veya ana kapsam için yerel) değişkeni değil? –

+0

Çok temiz! Bence en iyi çözüm olan –

+0

@Joseph, ben kişisel olarak veri() 'yi global değişkenlere (çoğunlukla isim-alanı kirliliği nedenleriyle) tercih ediyorum ve bu soruların sadece bir" ana "kapsamı olduğunu garanti edemem ... :) –

0
var defaultDialog = { 
    title: 'Another dialog', 
    autoOpen: false, 
    draggable: true, 
    modal: true, 
    show: 'fade', 
    hide: 'fade', 
    width: 400, 
    position: ['center', 'center'], 
    buttons: [ 
    { text: 'Ok' }, 
    { text: 'Cancel' } 
    ], 
    open: function(event, ui) { $(".ui-dialog-titlebar-close span").html('×') } 
}; 

var tunnedDialog= jQuery.extend(true, {}, defaultDialog); 

tunnedDialog.title: 'Another dialog'; 
tunnedDialog.buttons: [ 
    { text: 'Ok' }, 
    { text: 'Cancel' } 
    ] 

$('.another-dialog').dialog(tunnedDialog); 
İlgili konular