les boutons de dialogue jQuery UI des variables

j'ai des variables contenant les étiquettes traduites pour les boutons dans une boîte de dialogue jQuery ui.

Je ne peux pas remplir la touche tableau de boutons avec la variable elle-même, et ne peux trouver aucun moyen de la laisser traiter ma variable comme une chaîne.

translations['ok'] = 'ok';
translatinos['cancel'] = 'cancel';

// not working
jQuery('#foo').dialog({
    buttons:
    {
        translations['ok']: function() { alert('foo-ok'); },
        translations['cancel']: function() { alert('foo-cancel'); }
    }
});

// working
jQuery('#bar').dialog({
    buttons:
    {
        "Ok": function() { alert('bar-ok'); },
        "Cancel": function() { alert('bar-cancel'); }
    }
});

y a-t-il un moyen d'obtenir que cela fonctionne avec les touches de tableaux variables?

22
demandé sur Tim Santeford 2009-08-31 16:42:00

3 réponses

Vous pouvez l'essayer, peut-être cela aide:

var buttonsOpts = {}
buttonsOpts[translations["ok"]] = function ....
buttonsOpts[translations["cancel"]] = function ....
jQuery('#bar').dialog({
   buttons : buttonsOpts
});

j'Espère que ça aide!

38
répondu Alexey Ogarkov 2015-11-16 14:16:43
jQuery('#bar').dialog({
   buttons : [
       {
        text: translations.ok,
        click: function(){}
       },
       {
        text: translations.cancel,
        click: function(){}
       },
   ]
});
1
répondu ecabuk 2014-04-02 12:42:11

je sais que c'est vieux de 4 ans, mais c'est le meilleur résultat pour un problème que j'ai eu. Ici était le résultat de mon travail.

il suffit D'appeler la fonction dans un événement de souris ou de clavier, de faire référence à une fonction (sans parenthèses), de définir les boutons ou de définir un blanc, de définir un titre, et de définir le texte à afficher.

function confirmDialogue(fn, value, ok, cancel, title, text){
    if (typeof ok == "undefined" || ok == ""){ok = "Ok";}
    if (typeof cancel == "undefined" || cancel == ""){cancel = "Cancel";}
    var buttonsOpts = {};
    buttonsOpts[ok] = function() {fn(value);$( this ).dialog( "destroy" );}
    buttonsOpts[cancel] = function() {$( this ).dialog( "destroy" );}

    var NewDialog = $('<div id="dialogConfirm"><p>' + text + '</p></div>');
    NewDialog.dialog({
        title: title,
        dialogClass: "dialogue",
        modal: true,
        height: "auto",
        width: "auto",
        show: true,
        hide: true,
        close: function(){$(this).dialog('destroy');},
        buttons: buttonsOpts
    });
    return false;
}
0
répondu Jedimaster0 2014-08-22 19:46:40