Visible = false - 没有错误,但jquery不起作用

时间:2015-12-09 04:02:14

标签: javascript jquery

我真的很难尝试让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;
&#13;
&#13;

3 个答案:

答案 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";

它总是使用方法。