2009-05-28 6 views
0

J'ai le code suivant;jqModal, jquery question

// open the modal when an element with a class 'edit' is clicked 
      $('.edit').live('click', function() {` 
       $('#mdl_edit').jqm({onHide: f($(this).attr('id')), ajax: 'ajax/edit_modal.aspx?lid=' + $(this).attr('id'), ajaxText: '<img src="img/ajax-loader.gif"' }); 
       $('#mdl_edit').jqmShow(); 
       return false; 
      }); 


var f = function load_it(lID) { load_single_record(lID); }; 

la chose est, à chaque fois que je clique sur un élément avec une classe « modifier » la fonction load_it exécute avant même l'appel ajax à edit_modal.aspx .. Je requiers réellement courir après la boîte modale est fermé. Aussi, je dois passer le $ (this) .attr ('id') à la fonction qui doit être exécutée après que le modal soit fermé .. Je le fais mal (je le sais) mais quelqu'un peut-il me montrer le bon façon d'appeler une fonction, en lui passant aussi une variable, après la fermeture du modal?

salutations,

Kem

Répondre

1

votre problème est que f est exécuté lorsque le moteur JS définit la valeur de OnHide. Qu'est-ce que vous voulez vraiment est d'avoir OnHide réglé sur une fonction anonyme, définie en ligne, qui appelle load_it:

onHide:function(hash){load_it($(this).attr('id'));} 

vous n'avez pas besoin en fait le hash là, puisque vous ne l'utilisez pas, mais (selon La documentation de jqModal) il pourrait y avoir des choses intéressantes pour vous.