当前位置: 首页 > 知识库问答 >
问题:

窗口,滚动脚本不会触发/触发?

金皓君
2023-03-14

我有这个脚本:

<script type="text / javascript">
/* Popup on scroll. */
jQuery(function($){
$(window).one('scroll',function() {
  var y = $(this).scrollTop();
  if (y > 100) {
    $('.popup').css({display: 'flex'}).fadeIn();
    document.getElementById('content').style.display = "none";
  } else {
    $('.popup').css({display: 'none'}).fadeOut();
  }
});
});

jQuery(function($){
$('.popup-link').on('click', function(){
    $(this).closest(".popup").remove();
    document.getElementById('content').style.display = "block";
});
});
</script>   

HTML中的用法:

<div class="popup">
    <div class="popup-page">
        <a class="popup-link" href="url" target="_blank">
This is LINK TEXT.
        </a>
    </div>
</div>

由于某些原因,它的工作,如果页面重新加载一半,但不,它没有开火,在它工作之前,所以我不知道发生了什么。我在wordpress网站上使用这个。

共有1个答案

公西兴业
2023-03-14

使用jQuery的.on()而不是.one()
若要随后删除任何侦听器,请使用.off()方法:

null

jQuery(function($) {

  // POPUP
  // Yep, all you need for all your popups
  $("[data-popup]").on("click", function() {
    $(this.dataset.popup).toggleClass("show");
  });

  // CUSTOM POPUP STUFF
  const $popupCustom = $("#popup-custom");

  function popupScroll() {
    $popupCustom.toggleClass("show", $(window).scrollTop() > 100);
  }
  
  function popupDestroy() {
    // Remove listener from window scroll using .off()
    $(window).off('scroll', popupScroll);
  }

  // Listen for window scroll:
  $(window).on('scroll', popupScroll);
  
  // Destroy the scroll listener on click:
  $("#popup-destroy").on("click", popupDestroy);

});
body {
  min-height: 300vh; /* DEMO ONLY */
}

.popup {
  position: fixed;
  z-index: 10000;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  overflow: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(5px);
  transition: 0.3s;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
}

.popup.show {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.popup-page {
  padding: 20px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
<div id="popup-custom" class="popup">
  <div class="popup-page">
    <h1>Hello, World</h1>
    <button type="button" data-popup="#popup-custom" id="popup-destroy">DON'T SHOW ON SCROLL AGAIN!</button>
  </div>
</div>

<div id="content">
  <h1>THIS IS SOME CONTENT</h1>
  Scroll or<br>
  <button type="button" data-popup="#popup-custom">SHOW POPUP</button>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
 类似资料:
  • 当我使用 flink 事件时间窗口时,窗口只是不触发。如何解决问题,有没有办法调试?

  • 我正在使用翻滚窗口(5分钟)和,因为我的源代码来自Kafka。但是窗口总是运行超过5分钟。有人能建议吗?

  • 我有flink stream,我在某个时间窗口上计算一些事情,比如说30秒。 这里发生的事情是,它给我的结果,我以前的窗口聚合以及。 假设前30秒我得到结果10。 接下来的三十秒我想要新的结果,而不是我得到最后一个窗口的结果新的等等。 因此,我的问题是如何为每个窗口获得新的结果。

  • 我们使用进行了测试,我们可以很好地操作哨兵进行故障转移,但是脚本不会触发。 相关信息: 我们使用的是3.2中的配置文件(我们不得不使用,因为我们自己的配置文件已经被更新程序替换了)。 在中,两个脚本的路径是正确的: 我们甚至将这些文件的权限更改为,但仍然什么也没有。 我们已经关闭了redis和Sentinel的保护模式。 被注释掉,因为我们需要绑定到所有适配器,但是我们也尝试了 其他一切似乎都有效

  • 问题陈述:来自kafka源的流式事件。这些事件有效载荷为字符串格式。将它们解析为文档,并根据事件时间每隔5秒将其批量插入DB。 函数正在执行。但程序控制不会进入。因此不会发生批量插入。我尝试了键控和非键控窗口。它们都不工作。没有抛出错误。 flink版本:1.15.0 下面是我的主要方法的代码。我应该如何解决这个问题?

  • 正如标题所说,我根本无法让Quartz.net工作。我从NuGet获得了最新版本的Quartz.net(2.2.1)、Common.Logging(2.1.2)、Common.Logging.NLog(2.0.0)和NLog(2.1.0)。触发器没有被触发,而且石英绝对没有记录任何东西。我猜我搞砸了配置。 我的应用程序配置: 有一个作业和一个触发器与之相关: 调度程序将启动,作业和触发器将正确添加