防止javascript加载多次

时间:2016-09-05 23:25:49

标签: javascript php jquery html json

我试图在滚动加载上运行更多,但我希望它只运行一次。每次滚动到达页面底部时,下面的代码都会继续运行。 我需要在代码中添加一些东西

    if ($(window).scrollTop() == $(document).height() -   $(window).height() && x==24 ){

但我不知道要添加什么来使它只运行一次,以防止代码运行多次。

 <script>


    if ($(window).scrollTop() == $(document).height() -   $(window).height() && x==24 ){



   });
 });
 </script>

基本上我的问题是如何防止javascript多次运行。

2 个答案:

答案 0 :(得分:1)

如果仅需要scroll事件来调用该函数一次,则可以使用scroll语句中的$(window).off()中删除if事件

body {
  height: 400px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div id="div1">div </div>
<script>
  x = 24;

  $(document).ready(function() {
    $(window).on("scroll.once", function() {

      if ($(window).scrollTop() == $(document).height() - $(window).height() && x == 24) {

        $(window).off("scroll.once");
        $("#div1").append(123);

      }
    });
  });
</script>

答案 1 :(得分:0)

我有一个简单但不太优雅的解决方案,您可以在函数前添加boolean flag,在函数中执行代码之前check boolean stateboolean state在第一次调用函数后更改为欲望<script> var called = false; function myFunc(){ if (!called){ //your code here called = !called; } } </script> ,以便可以防止再次调用它。例如:

conditional aggregation

这不是最好的答案,但仍然希望它有帮助=)