0

我有下面的代码,它显示了一个 throbber,并在用户更改选择中的条目时对 MVC 操作进行 getJSON 调用。这一切都很好,除了我不希望 getJSON 运行的列表中有一个默认的 -- 选择 -- 元素。

但是,我无法弄清楚如何应用条件逻辑来挂钩此事件。条件逻辑显示为if(selectedValue == -1) 但 throbber 仍然在运行,因为我已经在第一行中钩住了它。我尝试删除挂钩更改事件的第一行,并在 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 不支持条件,因此它更像是一种 hack,而不是一种解决方案,但这应该可以工作:

$("#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 回答