0

以下のコードは、ユーザーが選択のエントリを変更したときに、スロバーを表示し、MVCアクションに対してgetJSON呼び出しを行います。getJSONを実行したくないデフォルトの--select--要素がリストにあることを除いて、これはすべてうまく機能します。

ただし、このイベントをフックするために条件付きロジックを適用する方法を理解することはできません。条件付きロジックは次のように示されますif(selectedValue == -1) が、最初の行でフックしたように、スロバーは引き続き実行されます。変更イベントをフックする最初の行を削除し、getJSON呼び出しの直前に$ .throbberShow(..)をインラインで使用しようとしましたが、何らかの理由でこれはthrobberを表示しません。

どんな助けでも大歓迎です。

$("#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();
                            });
                        }

                    }
                );
4

1 に答える 1

0

throbber は条件をサポートしていないため、解決策というよりもハックですが、これは機能するはずです。

$("#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();
    }
  }
);
于 2010-10-02T08:54:25.690 に答える