javascript - 在滚动 jQuery 上将 div 包装/展开到另一个 div 中

标签 javascript jquery html

我试图在滚动时使用 jQuery 将 div 包装到另一个 div 中,然后在向后滚动时展开,但每次滚动时它都会继续包装 div,如何使其仅工作一次?

这是我正在尝试的代码

$(".scroller").scroll(function() {
    if($(window).width() > 768)
    {
    if($(".scroller").scrollTop() > 245) {
       $(".doctor_listing_wrapper").wrap("<div class='doctor_listing_wrapper_master'></div>");
      }   
      else{
       $(".doctor_listing_wrapper").unwrap("<div class='doctor_listing_wrapper_master'></div>");
      }
    }
});

HTML很简单,只是一个带有一些内部内容的div

 <div class="doctor_listing_wrapper">
    <p>Content goes here</p>
    <p>Content goes here</p>
    <p>Content goes here</p>
 </div>

更新 JSfiddle Demo

最佳答案

您需要检查该元素是否已存在...以下示例应该可以解决您的问题 (!$(".doctor_listing_wrapper_master").length)

$(".scroller").scroll(function() {
    if($(window).width() > 768)
    {
    if($(".scroller").scrollTop() > 245) {
      if(!$(".doctor_listing_wrapper_master").length){
           $(".doctor_listing_wrapper").wrap("<div class='doctor_listing_wrapper_master'></div>");
        }
      }   
      else{
       $(".doctor_listing_wrapper").unwrap("<div class='doctor_listing_wrapper_master'></div>");
      }
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="doctor_listing_wrapper">
    <p>Content goes here</p>
    <p>Content goes here</p>
    <p>Content goes here</p>
 </div>

关于javascript - 在滚动 jQuery 上将 div 包装/展开到另一个 div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844447/

相关文章:

jQuery::Ajax 永远不会成功

javascript - 如何打印包含特定字符串的行?

javascript - 警报对话框无法关闭

jquery - twitter 像 asp.net mvc 中的警报 jquery

Jquery 菜单 - 在父菜单按钮上切换子菜单区域和 css 状态更改

html - 如何将元素放置在 flexbox 中,宽度相等?

Javascript 按位运算

jquery - div 的条纹类

javascript - 单击具有相同类的新 Div 时隐藏其他 Div

php - 如何使用 easyxdm 跨域自动调整 WordPress 页面内 iframe 的大小?