2010-10-02 4 views
0

J'ai le code ci-dessous qui montre un throbber et fait un appel getJSON à une action MVC lorsque l'utilisateur modifie une entrée dans un select. Tout cela fonctionne très bien, sauf qu'il y a un élément default - select - dans la liste pour laquelle je ne veux pas que le getJSON soit exécuté.charge conditionnellement plugin throbber jquery

Cependant, je ne peux pas savoir comment appliquer une logique conditionnelle pour accrocher cet événement. La logique conditionnelle est représentée par le if(selectedValue == -1). Mais le throbber continue de courir quand je l'ai accroché en première ligne. J'ai essayé de supprimer la première ligne qui accroche l'événement change et j'utilise $ .throbberShow (..) inline juste avant l'appel de getJSON mais pour une raison quelconque cela n'affiche pas le throbber.

Toute aide grandement appréciée.

$("#selectlist").throbber("change", { ajax: false, image: "images/ajax-loader-line.gif" }); 

       $("#selectlist").change(

        function() { 
         var selectedValue = $("#selectlist").val(); 

         if (selectedValue != -1) { 
          //Tried doing $.throbberShow(...) here without success 
          $.getJSON("/Candidate/GetAddress", { id: selectedValue }, function (data, textStatus) { 
           if (textStatus == "success") { 
            $("#selectlist").val(data.Line1) 
            $("#selectlist").val(data.Line2) 
            $("#selectlist").val(data.Line3) 
            $("#selectlist").val(data.Town) 
           } 
           $.throbberHide(); 
          }); 
         } 

        } 
       ); 

Répondre

0

Il est plus un hack qu'une solution comme throbber ne supporte pas les conditions, mais cela devrait fonctionner:

$("#selectlist").throbber("change", { ajax: false, image: "images/ajax-loader-line.gif", delay: "500" }); 

$("#selectlist").change(
    function() { 
    var selectedValue = $("#selectlist").val(); 
    if (selectedValue != -1) { 
     $.getJSON("/Candidate/GetAddress", { id: selectedValue }, function (data, textStatus) { 
     if (textStatus == "success") { 
      $("#selectlist").val(data.Line1) 
      $("#selectlist").val(data.Line2) 
      $("#selectlist").val(data.Line3) 
      $("#selectlist").val(data.Town) 
     } 
     $.throbberHide(); 
     }); 
    } else { 
     $.throbberHide(); 
    } 
    } 
);