我真的很难尝试让jQuery工作;可能是因为我从未真正学过Javascript。
我的方法 hide_all 不起作用,所以我甚至都不知道其余部分是否有效。
这有什么问题?这是个人网页(我们中的一些人仍然这样做)。
$().ready(function() {
hide_all();
});
function hide_all() {
$('div[class=private_stock]').visible = false;
};
$('#hrefBox1').click(function() {
hide_all();
$('#hrefBox1').show('slow');
});
$('#hrefBox2').click(function() {
hide_all();
$('#hrefBox2').show('slow');
});
$('#hrefBox3').click(function() {
hide_all();
$('#hrefBox3').show('slow');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<ul>
<li><a id="hrefBox1" href="#">Box 1</a>
</li>
<li><a id="hrefBox2" href="#">Box 2</a>
</li>
<li><a id="hrefBox3" href="#">Box 3</a>
</li>
</ul>
<div id="divBulls" class="private_stock">
<div style="background-color:blue;height:400px;width:800px;"></div>
</div>
<div id="divCows" class="private_stock">
<div style="background-color:red;height:400px;width:800px;"></div>
</div>
<div id="divCalves" class="private_stock">
<div style="background-color:green;height:400px;width:800px;"></div>
</div>
&#13;
答案 0 :(得分:2)
您的代码中的一个主要问题是: - 当调用show时,你提供了作用于链接的'hrefs'的id。而'hide_all'函数试图将'private_stock'设置为隐藏..
奇怪你没有使用jquery的'hide()'函数来'隐藏所有'......
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<ul>
<li><a id="hrefBox1" href="#">Box 1</a>
</li>
<li><a id="hrefBox2" href="#">Box 2</a>
</li>
<li><a id="hrefBox3" href="#">Box 3</a>
</li>
</ul>
<div id="divBulls" class="private_stock">
<div style="background-color:blue;height:400px;width:800px;"></div>
</div>
<div id="divCows" class="private_stock">
<div style="background-color:red;height:400px;width:800px;"></div>
</div>
<div id="divCalves" class="private_stock">
<div style="background-color:green;height:400px;width:800px;"></div>
</div>
<script>
$().ready(function() {
hide_all();
});
function hide_all() {
$('div[class=private_stock]').hide();
};
$('#hrefBox1').click(function() {
hide_all();
$('#divBulls').show('slow');
});
$('#hrefBox2').click(function() {
hide_all();
$('#divCows').show('slow');
});
$('#hrefBox3').click(function() {
hide_all();
$('#divCalves').show('slow');
});
</script>
答案 1 :(得分:1)
如果您需要隐藏可见的div,请使用:visible
选择器和.hide()
隐藏它
$('div[class=private_stock]:visible').hide();
或者您可以使用
$('div.private_stock').hide();
答案 2 :(得分:1)
jQuery中没有像.visible
这样的属性。使用.hide()
。
此外,您无需使用[class='private-stock']
选择器 - 您需要使用.private-stock
。
$('div.private-stock').hide();
实际上,jQuery从不使用对象的属性。你永远不会看到像:
var x = $("div").style;
$("div").class = "myClass";
它总是使用方法。