Javascript 隐藏窗口加载时不工作
这快把我逼疯了。在某个时候,一切似乎都很好,但突然一切都停止了工作,我不知道为什么 我有一组div,其中有一个类,我想隐藏除前四个div之外的所有内容Javascript 隐藏窗口加载时不工作,javascript,jquery,hide,Javascript,Jquery,Hide,这快把我逼疯了。在某个时候,一切似乎都很好,但突然一切都停止了工作,我不知道为什么 我有一组div,其中有一个类,我想隐藏除前四个div之外的所有内容 <div id="container"> <div class="item">content 1</div> <div class="item">content 2</div> <div class="item">content 3</div&g
<div id="container">
<div class="item">content 1</div>
<div class="item">content 2</div>
<div class="item">content 3</div>
<div class="item">content 4</div>
<div class="item">content 5</div>
</div>
内容1
内容2
内容3
内容4
内容5
我在医生的头上写了以下内容
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(window).load(function() {
$(".item:gt(3)").hide();
});
</script>
$(窗口)。加载(函数(){
$(“.item:gt(3)”).hide();
});
为什么这样不行
我必须说“.item”divs是基于URL上设置的变量动态加载的。类似于mydoamin.com/myitems/?zicode=10005
因此,显示的项目来自外部数据库并加载到页面中
我的假设是$(window).load等待文档中存在所有这些项。我错了吗?在这种情况下,我如何确保只有在所有东西都真正加载后才能执行函数 而不是$(window).load(function(){
您需要使用等待DOM完全加载的函数
$(document).ready(function() {
$(".item:gt(3)").hide();
});
尝试使用类似以下内容:
function itemHide() {
$(".item:gt(3)").hide();
}
window.onload=itemHide;
希望这将对您有所帮助。$(窗口)。load()
与DOM ready不同。请改用它:
$(function () {
$(".item:gt(3)").hide();
}
您需要将代码包装在
ready
function=>$(function(){//your code here})中
你的代码工作正常这会有帮助:当你说项目是从数据库动态加载的,你是说它们是用ajax调用的吗?因为这会完全改变你的需要。OP已经在窗口中修改了他们的工作。onload
事件。@krillgar你能解释一下为什么使用downvote吗window.load错误。您是否尝试过该代码或只是下载了该代码?您发布的代码是OP与jQuery一起使用的代码的纯JavaScript版本。您的行window.onload=itemHide;
将与$(window.load)同时运行(函数(){itemHide();});
。两者之间没有区别。仍然不起作用,因为我的项目是动态加载的。如果项目已经在HTML中,那么是的,这是有效的。但是,由于我的项目在不同的时刻加载,我如何确保我的.hide函数是最后执行的?然后将代码隐藏在所有项目的末尾执行$(document).ready()
函数中的代码。这就是为什么在函数被命中时抛出随机函数声明是个坏主意的原因之一。您“不知道”当它们运行时。将函数声明为变量,并在试图隐藏任何内容之前专门调用它们。此外,这一发现完全改变了我们解决问题的方法。这就是为什么共享所有代码很重要的原因。