【发布时间】:2015-06-03 15:45:14
【问题描述】:
我正在尝试对三个 div 进行简单的显示/隐藏。它在 IE 中运行良好,但 onClick 功能在 Chrome 或 FireFox 中不起作用。
这是我的代码(简化了 div 内容):
$(function showHide() {
$("#showaudience").click(function() {
$("#behavior").hide();
$("#acquisition").hide();
$("#audience").show();
});
$("#showbehavior").click(function() {
$("#behavior").show();
$("#acquisition").hide();
$("#audience").hide();
});
$("#showacquisition").click(function() {
$("#behavior").hide();
$("#acquisition").show();
$("#audience").hide();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div>
<input type="button" id="showaudience" value="Audience" onClick="showHide"></input>
<input type="button" id="showbehavior" value="Behavior" onClick="showHide"></input>
<input type="button" id="showacquisition" value="Acquisition" onClick="showHide"></input>
</div>
<div id="audience" style="display:block;">Audience Data</div>
<div id="behavior" style="display:none;">Behavior Data</div>
<div id="acquisition" style="display:none;">Acquisition Data</div>
【问题讨论】:
-
呃,是的。你用的是什么版本的chrome?
-
版本 43.0.2357.65 m - 当我在 Chrome 上的 JS Fiddle 中运行它时它可以工作,但是当我在 Chrome 的开发服务器上预览它时它不会。
-
一个与您的问题无关的简单建议:您应该为所有按钮添加一个类并简单地触发
$('.myClass').hide(); $('#myButton').show()甚至连接您的调用$('#myClass1, #myClass2').hide()它会节省几行和 jQuery 调用. 3 个按钮可能看起来没必要,但如果你有 20 个按钮,它可能会很有用。 -
片段运行良好。确保您的页面具有正确链接到 jquery 的链接。我们不能说更多......
-
为什么要将事件侦听器绑定放在
showHide()函数中?这意味着您需要调用showHide()函数来添加单击事件侦听器......这不是有缺陷的逻辑吗? (真的很好奇)
标签: jquery html google-chrome