2 votes

liaison dynamique fonction de rappel Jquery

Je suis sûr que je pense trop...

Le fichier A a un div vide de conteneur, le bouton est cliqué, charge les données dans ce div...

Le fichier A a un bouton auquel je veux lier une fonction à partir du retour jquery ci-dessus.

FICHIER AJAX

echo json_encode(array('callback' => 'javascriptFunction'));

"javascriptFunction" est une fonction valide qui peut être appelée. Comment puis-je lier cette fonction ?

JAVASCRIPT

$.ajax({
    type: 'POST',
    dataType: 'json',
    url: "../ajax.php",
    data: '&m=loadExternalData&f='+ module,
    success: function(resultData) {
        $('#externalFieldsetTitle').html(resultData.title);
        $('#externalSaveButton').bind('click', function() {
            resultData.callback;
        });
    }
}); 

Je renvoie plus que le simple "callback", mais pour cet exemple, je ne pense pas que ce soit nécessaire.

En gros, je charge des modules externes dans un div et je veux leur permettre de spécifier leur fonction de sauvegarde et de la transmettre afin que le bouton de sauvegarde du noyau fonctionne sur les multiples fichiers externes chargés. Je pense que cela a du sens ?

2voto

Viktor S. Points 12026

Essayez quelque chose comme ça :

$('#externalSaveButton').bind('click', function() {
            window[resultData.callback]();
        });

Ou directement :

$('#externalSaveButton').bind('click', window[resultData.callback]);

(dans ce cas, il doit être dans la portée globale)

0voto

Vladimir Gordienko Points 2680
$(document).ready(function() {
$('#externalSaveButton').live('click', function(resultData) {
            resultData.callback;
        });
});

0voto

David Points 36241

La requête ajax renvoie probablement une chaîne de caractères comme fonction. Ce que vous pouvez faire, c'est essayer de la passer en tant que Function constructeur :

var callback = new Function(resultData.callback);
$('#externalSaveButton').bind('click', callback);

Mais tout dépend de la façon dont le resultData.callback est formaté.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X