有条件地加载jquery throbber插件

时间:2010-10-02 07:36:22

标签: asp.net jquery asp.net-mvc-2 jquery-plugins throbber

我在下面的代码中显示了一个throbber,并在用户更改select中的条目时对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();
                            });
                        }

                    }
                );

1 个答案:

答案 0 :(得分:0)

这更像是一种破解而非解决方案,因为笨蛋不支持条件,但这应该有效:

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