Contact

Programmeren

Er zijn genoeg websites met informatie over allerlei programmeertalen op internet te vinden, maar echt bruikbare tips en voorbeeld codes zijn schaars. Op deze pagina zal ik met duidelijke voorbeelden proberen beginnende programmeurs of hobbyisten wat op weg te helpen.

Knop in jQuery dialog dynamisch een titel geven


Voor mijn kalendar /agenda project wilde ik de tekst op de knop dynamisch kunnen wijzigen afhankelijk van de gekozen taal in de configuratie van de kalender.

Standaard methode voor de knoppen van de dialoog is het volgende:

$( "#dialog-message" ).dialog({
                modal: true,
                title: Lang.Popup.Title,
                height: 400,
                width: 285,
                buttons: {
                    Save:  function() {
                        $( this ).dialog( "close" );
                        addEvent(start, end);
                    },
                    Close: function() {
                        $( this ).dialog( "close" );
                    }
                }
          });


Helaas kun je hier de tekst niet direct wijzigen aan de hand van een variabele.

Na wat googelen vond ik de volgende oplossing die leek te gaan werken:

var closeButtonText            = Lang.Popup.closeButtonText;
var saveButtonText            = Lang.Popup.saveButtonText;
var buttonDefs                 = {};
buttonDefs[saveButtonText]     = function() {
       $( this ).dialog( "close" );
       addEvent(start, end);
};
buttonDefs[closeButtonText] = function() {
       $( this ).dialog( "close" );
};

$( "#dialog-message" ).dialog({
                modal: true,
                title: Lang.Popup.Title,
                height: 400,
                width: 285,
                buttons: buttonDefs   
         });


Ik kwam er alleen achter dat de start en end parameters nu niet bekend waren. Ik wilde hier geen globale variabelen van maken, dus zocht ik nog wat verder.

Deze oplossing was precies wat ik zocht:

$( "#dialog-message" ).dialog({
                modal: true,
                title: Lang.Popup.Title,
                height: 400,
                width: 285,
                buttons: [{
                    text: Lang.Popup.saveButtonText,
                    click: function () {
                        $( this ).dialog( "close" );
                        addEvent(start, end);
                    }
                }, {
                    text: Lang.Popup.closeButtonText,
                    click: function () {
                        $( this ).dialog( "close" );
                    }
                }]
       });