2016-05-18 6 views
0

J'utilise jQuery BlockUI Plugin sur le chargement de la page (première chose):jQuery BlockUI ne fonctionne pas lorsqu'il est appelé deux fois

<script> 
    $.blockUI({ message: null }); 
</script> 

Et quand tout charge, la page entière débloque:

$(window).load(function() { 
    $.unblockUI(); 
}); 

Il fonctionne très bien , mais je ne peux pas bloquer à nouveau ui comme ceci:

$("#buttonFoo").click(function(){ 
    $.blockUI(); //nothing happens 
    doStuff(); //I want screen blocked while doing stuff 
    $.unblockUI(); 
}); 

doStuff() est appelée, mais l'écran pas bloqué. Devrais-je faire autre chose?

[EDIT]

Il a travaillé, mais comme @GuruprasadRao dit, .unblockUI $() n'a pas attendu doStuff() pour terminer. Je résolu comme ceci:

$("#buttonFoo").click(function(){ 
     $.blockUI({ 
     onBlock: function() { 
      doStuff(); 
      $.unblockUI(); 
     } 
    }); 
}); 
+0

Des 'erreurs de console'? –

+0

@GuruprasadRao non, la console ne lance rien. – detoro84

+1

Cela fonctionne mais je suppose que vous ne pouvez pas l'afficher puisque '$ .unblockUI();' ne pourrait pas attendre jusqu'à ce que votre requête ajax 'doStuff()' –

Répondre

0

Cela a fonctionné, mais comme l'a dit @GuruprasadRao, $.unblockUI() ne pas attendu doStuff() pour terminer. J'ai résolu comme ceci:

$("#buttonFoo").click(function(){ 
     $.blockUI({ 
     onBlock: function() { 
      doStuff(); 
      $.unblockUI(); 
     } 
    }); 
});