在这种情况下,如何在单击Button时显示指示器

时间:2016-05-23 07:34:46

标签: javascript jquery

单击“再试一次”按钮,是否可以显示设备上发生的一些处理

My jsfiddle

我的代码如下

$(document).on("click", ".getStarted", function(event) {
    // Simulating Net Connection here
    var a = 10;
    if (a == 10) {
        $('#mainlabel').delay(100).fadeIn(300);
        $('#nonetconnmain').popup({
            history : false
        }).popup('open');
        event.stopImmediatePropagation();
        event.preventDefault();
        return false;
    }
});
$(document).on('click', '.nonetconnmainclose', function(event) {
    $('#nonetconnmain').popup('close');
    $(".getStarted").trigger("click");
    event.stopImmediatePropagation();
    event.preventDefault();
    return false;
});

$(document).on("popupbeforeposition", "#nonetconnmain", function(event, ui) {
    $('#mainlabel').hide();
});  

使用我的代码,功能正常,但似乎应用程序没有执行任何操作

所以我的问题是可以显示任何指示(例如,延迟,进度条,任何东西)

4 个答案:

答案 0 :(得分:3)

这里你去了



$(document).on("click", ".getStarted", function(event) {

  $.mobile.loading("show", {
    text: "",
    textVisible: true,
    theme: "z",
    html: ""
  });

  // Simulating Net Connection here
  var a = 10;
  if (a == 10) {

    setTimeout(function() {
      $.mobile.loading("hide");
      $('#mainlabel').fadeIn(300);
    }, 1000);


    $('#nonetconnmain').popup({
      history: false
    }).popup('open');
    event.stopImmediatePropagation();
    event.preventDefault();
    return false;

  }
});

$(document).on('click', '.nonetconnmainclose', function(event) {


  $('#nonetconnmain').popup('close');
  $(".getStarted").trigger("click");
  event.stopImmediatePropagation();
  event.preventDefault();
  return false;
});

$(document).on("popupbeforeposition", "#nonetconnmain", function(event, ui) {
  $('#mainlabel').hide();
});

.popup {
  height: 200px;
  width: 150px;
}
.popup h6 {
  font-size: 1.5em !important;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<link href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" rel="stylesheet" />

<div data-role="page">


  <div data-role="popup" id="nonetconnmain" data-dismissible="false" class="ui-content" data-theme="a">
    <div class="popup_inner popup_sm">
      <div class="popup_content" style="text-align:center;">
        <p class="">Please check net connectivcty</p>
        <label id="mainlabel" style="margin:100px auto 60px auto;color:Red; line-height:40px;font-size:medium;display:none">Please check</label>
      </div>
      <div class="popup_footer nonetconnmainclose">
        <a class="">Try Again</a>
      </div>
    </div>
  </div>


  <button class="getStarted btn btn-a get_btn">Click Here</button>

</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用一个小函数(使用time作为参数)并使用jQuery animate()来创建如下所示的过程效果。

var updateProgress = function(t) {
$( "#p" ).css("width",0);
$( "#p" ).show();
$( "#p" ).animate({ "width": "100%" }, t , "linear", function() {
$(this).hide();
});
}

请注意,调用updateProgress()时选择的时间与短信的延迟和淡入效果有关

updateProgress(3500);
$('#mainlabel').delay(3400).fadeIn(600);

在下面的代码段中查看它

&#13;
&#13;
var updateProgress = function(t) {
$( "#p" ).css("width",0);
$( "#p" ).show();
$( "#p" ).animate({ "width": "100%" }, t , "linear", function() {
$(this).hide();
});
}

  $(document).on("click", ".getStarted", function(event) {	
  var a = 10;
  if(a==10)
  {
    updateProgress(3500);
    $('#mainlabel').delay(3400).fadeIn(600);
    $('#nonetconnmain').popup({history: false}).popup('open');
                            event.stopImmediatePropagation();
                            event.preventDefault();
                            return false;

  }
});
$(document).on('click', '.nonetconnmainclose', function(event) {
  $('#nonetconnmain').popup('close');
  			  $(".getStarted").trigger("click");
    event.stopImmediatePropagation();
      event.preventDefault();
      return false;
});

$(document).on("popupbeforeposition", "#nonetconnmain",function( event, ui ) {
        	$('#mainlabel').hide();
    });  
&#13;
.popup {
    height: 200px;
    width: 400px;
}
.popup h6 {
    font-size: 1.5em !important;
}
#p {
  border:none;
  height:1em;
  background: #0063a6;
  width:0%;
  float:left;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<link href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" rel="stylesheet"/>
<div data-role="page">
    
  
   <div data-role="popup" id="nonetconnmain" data-dismissible="false" class="ui-content" data-theme="a">
            <div class="popup_inner popup_sm">
                <div class="popup_content" style="text-align:center;">
                    <p class="">Please check net connectivcty</p>
                     <div id="p"></div><br>
                     <label id="mainlabel" style="margin:100px auto 60px auto;color:Red; line-height:40px;font-size:medium;display:none">Please check </label>	
                </div>
                <div class="popup_footer nonetconnmainclose">
                        <a class="">Try Again</a>
                </div>
            </div>
        </div>
  
  
<button class="getStarted btn btn-a get_btn">Click Here</button>  
    
</div>
&#13;
&#13;
&#13;

Fiddle

答案 2 :(得分:0)

当你再次点击试试时,你可以触发一个setinterval,它可以检查在线连接,当找到它时可以关闭弹出窗口并重新开始,当我们在间隔中重试时,进度可以显示为进度点.. 下面是代码,我没有尝试运行代码,但它显示了这个想法

$(document).on('click', '.nonetconnmainclose', function(event) {
var msgUI = $("#mainlabel");
msgUI.data("previoustext",msgUI.html()).html("retrying...");
var progress = [];
var counter = 0 ,timeout = 5;
var clearIt = setInterval(function(){
    var online = navigator.onLine;
    progress.push(".");
    if(counter > timeout && !online){
        msgUI.html(msgUI.data("previoustext"));
        counter=0;
    }
    if(online){
        $('#nonetconnmain').popup('close');
        $(".getStarted").trigger("click");
        counter=0;
        clearInterval(clearIt);
    }
else{
    msgUI.html("retrying" + progress.join(""));
    counter++;
}

},1000);
event.stopImmediatePropagation();
event.preventDefault();
return false;
});

答案 3 :(得分:-1)

当然,

尝试将加载程序GIF附加到其中一个div,并记住在您的过程完成后删除它。

请参阅StackOverflow

尝试附加此

$('#nonetconnmain').append('<center><img style="height: 50px; position:relative; top:100px;" src="cdnjs.cloudflare.com/ajax/libs/semantic-ui/0.16.1/images/…; alt="loading..."></center>'); 

这会在HTML上附加一个加载程序,以显示某种处理方式。