jquery - 定义加载效果仅出现在ONCE上

时间:2016-06-19 15:08:53

标签: javascript jquery

点击某个图标,我向DOM添加一条加载消息。问题是,如果用户点击两次(在加载最终消息时,他会看到此消息两次......)。

如何防止每个屏幕出现第二次“加载...”?我一次也不想要多于一个。

$(document).on('page:change', function () {
    //show loading message
    $("#icon1, #icon2, #icon3").click(function(e) {
      e.preventDefault();
      $("Loading ...")
      .insertAfter( $( "#icon1" ) );
    });    
  });

注意:有些用户建议使用.one:我认为它不起作用,因为这意味着我只能点击一次然后才会发生。这不是我想要做的。我希望当用户看到“loading ..”时,他看不到另一个“加载......”但他仍然可以点击onc,e看到“loading ...”,然后当“loading ...”消失后他可以点击并再次看到它。

1 个答案:

答案 0 :(得分:2)

您可以使用布尔变量,并检查它是真还是假

$(document).on('page:change', function () {
    //show loading message
    var isLoading = false;
    $("#icon1, #icon2, #icon3").click(function(e) {
      if(isLoading == true) return;
      isLoading = true;
      e.preventDefault();
      $("Loading ...")
      .insertAfter( $( "#icon1" ) );

     //After finishing loading
     isLoading = false;
    });    
  });