javascript - 我怎样才能使这个活跃的点击?

标签 javascript html css arrays function

var span = document.getElementById('loading_dots');

var int = setInterval(function() {
    if ((span.innerHTML += '●').length == 4) 
        span.innerHTML = '';
}, 400);

(function(){
    var loading_dots = document.getElementById("loading_dots"),

      show = function(){
        loading_dots.style.display = "block";
        setTimeout(hide, 5000); // 5 seconds
      },

      hide = function(){
        loading_dots.style.display = "none";
      };

    show();
})();

如何使 loading_dots 在单击按钮时启动,并在每次单击按钮时重新激活?最下面的函数是 5 秒后停止,也许可以将它合并为一个函数?

需要为 3 个单独的按钮工作并在单击每个按钮时重新启动,还需要在 <span class="loading_dots" id="loading_dots"></span> 内显示任何方法都可以,css、jquery 或 javascript

最佳答案

这是一个 jQuery 版本:

(function ( $ ) {
 
    $.fn.loader = function( options ) {
      var settings = $.extend({
            text:"●",
            spn: undefined
        }, options );
        
        
        $.each(this, function(){
        var btn = this;      
        var int;
        var spn;
        if (settings.spn === undefined) {
         spn = $("<span/>" , { "class":"loading_dots" });
         $(btn).append(spn);
        } else {
          spn= $(settings.spn);
         }
         var show = function(){
         btn.setAttribute("disabled", "disabled")
         clearInterval(int);
         spn.show();
         int = setInterval(function() {
         if ((spn[0].innerHTML += settings.text).length == 4) 
           spn.html("");
        }, 400);
         setTimeout(hide, 5000); // 5 seconds
        }
        
        var hide = function (){
        spn.hide();
        btn.removeAttribute("disabled", "disabled")
        clearInterval(int);
        }
        
        btn.addEventListener("click", show);
       });
    };
 
}( jQuery ));

// now bind it by its class, this only need to be run once every time new button is added to the html
$(".btn").loader({spn:".loading_dots"});

// and you could also specify the text by 
// $(".btn").loader({text: "*"});
.loading_dots {
color:red;
display:none;
width:100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div>
<span class="loading_dots"></span>
<button class="btn" type="button" >
submit
</button>


<button class="btn" type="button" >
submit
</button>
</div>

关于javascript - 我怎样才能使这个活跃的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54224119/

相关文章:

javascript - 如何在 React 中渲染 `HTMLCanvasElement`?

html - 覆盖 XSL 调用模板

css - 溢出在表行之上而不是之下

css - 动画元素内的固定元素

javascript - 是否可以在 HTML/JavaScript 中构建原生样式的切换按钮?

html - CSS 背景定位

Javascript 表格的分页

javascript - 每页上的序列号相同

javascript - 在同一文档中重复使用 export.function

javascript - 如何使用 CSS3/JS 标记图像中的不同部分