2009-05-28 18 views
0

Ich habe den folgenden Code;jqModal, jquery Frage

// 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); }; 

die Sache ist, wann immer ich mit einer Klasse „Bearbeiten“ die Funktion load_it den Ajax-Aufruf läuft auf ein Element klicken, bevor auch den edit_modal.aspx .. Ich brauche es eigentlich nach der modalen Box laufe ist geschlossen. Außerdem muss ich die $ (this) .attr ('id') an die Funktion übergeben, die ausgeführt werden muss, nachdem das Modal geschlossen wurde. Ich mache es falsch (ich weiß es), aber jemand kann mir das Richtige zeigen Möglichkeit, eine Funktion aufzurufen, indem auch eine Variable an sie übergeben wird, nachdem das Modal geschlossen wurde?

Grüßen,

kem

Antwort

1

Ihr Problem ist, dass f ausgeführt wird, wenn die JS-Engine den Wert von OnHide setzt. Was Sie wirklich wollen, ist OnHide auf eine anonyme Funktion haben, Inline definiert, die load_it ruft:

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

Sie eigentlich gar nicht die hash es brauchen, da man sie nicht verwenden, sondern (wie pro (jqModals Dokumentation) da könnte es einige interessante Sachen für dich geben.