gpt4 book ai didi

javascript - Toggle 根据浏览器大小删除 Div

转载 作者:行者123 更新时间:2023-12-03 08:23:17 25 4
gpt4 key购买 nike

我编写了这个脚本,根据浏览器的窗口大小在容器中的每个第三个 Div 之后添加一个 Div。

我下面的内容工作正常但它只能工作一次!因此它添加了 div 并删除了它们,但如果窗口再次调整大小,则不会再次添加它们。

如何才能重新添加已经被删除的 div?

 var addNth = (function () {
var len, i = 0, className, prevIndexes = [];

function isNew (el) {
return el.hasClass(className); // removed unnecessary parenthesis
}

return function (selector, html, nth, className ) {
var els = $( selector );
className = className || 'test';

if ( $.inArray(nth, prevIndexes) === -1 ) {
prevIndexes.push(nth);

$.each(els, function( index, el ) {
el = $(el);
if ( (i % nth) === 0 && i !== 0 ) {
if ( ! isNew(el) ) {
el.before( html );
}
}
i++;
});
i = 0;
}
}

})();
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
$(window).resize(function(e) {
var windowWidth = $(this).width(),
$myClass = $('div.myContainer > div.myClass');

if (windowWidth > 1024 && windowWidth < 1700) {
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
}
else {
$myClass.remove();
}
});

JSFiddle: https://jsfiddle.net/9vmg35sL/

最佳答案

添加||即可解决问题$.inArray(nth, prevIndexes) === 0 到 addNth() 中的 if 语句。

尝试下面的代码片段,然后进入整页,然后尝试调整页面/窗口的大小。

或jsFiddle:http://jsfiddle.net/dk5tLb19/2/

var addNth = (function () {
var len, i = 0, className, prevIndexes = [];

function isNew (el) {
return el.hasClass(className); // removed unnecessary parenthesis
}

return function (selector, html, nth, className ) {
var els = $( selector );
className = className || 'test';

if ( $.inArray(nth, prevIndexes) === -1 || $.inArray(nth, prevIndexes) === 0 ) {
prevIndexes.push(nth);

$.each(els, function( index, el ) {
el = $(el);
if ( (i % nth) === 0 && i !== 0 ) {
if ( ! isNew(el) ) {
el.before( html );
}
}
i++;
});
i = 0;
}
}

})();

addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
var divExists = true;
$(window).resize(function(e) {
var windowWidth = $(this).width(),
$myClass = $('div.myContainer > div.myClass');

if (windowWidth > 1024 && windowWidth < 1700) {
if(!divExists) {
addNth('div.aDiv','<div class="myClass">Some Content</div>',3);
divExists = true;
}
}
else {
$myClass.remove();
divExists = false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="myContainer">
<div class="aDiv">1</div>
<div class="aDiv">2</div>
<div class="aDiv">3</div>
<div class="aDiv">4</div>
<div class="aDiv">5</div>
<div class="aDiv">6</div>
<div class="aDiv">7</div>
<div class="aDiv">8</div>
<div class="aDiv">9</div>
<div class="aDiv">10</div>
<div class="aDiv">11</div>
<div class="aDiv">12</div>
<div class="aDiv">13</div>
<div class="aDiv">14</div>
<div class="aDiv">15</div>
</div>

尝试下面的代码片段,然后进入整页,然后尝试调整页面/窗口的大小。

关于javascript - Toggle 根据浏览器大小删除 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33650683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com