javascript - 为什么这个隐藏/显示 div js 只能在 jsfiddle 中工作?

标签 javascript html show-hide jsfiddle

我有一个隐藏/显示 div 脚本,可以按照我想要的方式工作:http://jsfiddle.net/XwN2L/3537/

但是,当我在其他地方编码时,无论我链接 javascript 和 css 还是将其嵌入到 html 文件中(如下所示),它都不起作用。

<title></title>
<style type="text/css">
ul.buttons {
    display: inline-block;
    height: 35px;
    position: fixed;
    bottom: 18px;
    left: 43px;
    z-index: 40;
    list-style-type: none;
}
.buttons li {
    list-style-type: none;
    display: inline;


}

ul#divMenu {
height: 40px;
background-color: #ddd;
position: fixed;
padding-left: 76px;
padding-right: 15px;
bottom: 15px;
    left: 17px;
    right: 17px;
z-index: 3;
line-height: 39px;
vertical-align: middle;
}

#divMenu li {
    list-style-type: none;
    display: inline;
    font-family: ProximaNovaLtRegular;
    font-size: 12px;
    margin-right: 2em;
}


#divInfo {
height: 40px;
background-color: #ddd;
position: fixed;
padding-left: 76px;
padding-right: 15px;
bottom: 15px;
    left: 17px;
    right: 17px;
z-index: 3;
line-height: 39px;
vertical-align: middle;
}
</style>



<script type='text/javascript'>
$('.targetDiv').hide();
$('.show').click(function () {
    $('.targetDiv').hide();
    $('#div' + $(this).attr('target')).show();
});

$('.hide').click(function () {
    $('.targetDiv').hide();

});
</script>




</head>

<body><ul class="buttons">
    <li><img src="menu.png" class="show" target="Menu"></a></li>
    <li><img src="info.png" class="show" target="Info"></a></li>
    <li><img src="close.png" class="hide" ></a></li>
</ul>


<ul id="divMenu" class="targetDiv">
                <li><a href="print.html">1</a></li>
                <li><a href="print.html#four">2</a></li>
                <li><a href="identity.html#sixteen">3</a></li>
                <li><a href="print.html#seven">4</a></li>
                <li><a href="identity.html">5</a></li>
</ul>

<div id="divInfo" class="targetDiv">Lorum Ipsum 2</div>

</body>
</html>

有人能告诉我我做错了什么吗?

最佳答案

JSFiddle 在做什么

加载

JSFiddle 将 JavaScript/jQuery 框中的所有代码包装在 $(window).load(function(){...}); 中。这是因为您将“框架和扩展”中的第二个下拉菜单设置为“onLoad”。通过此设置,脚本将等待所有媒体和数据加载以及页面渲染。

onDomReady

如果使用 onDomReady 选项,JSFiddle 将使用 $(function(){...}); 它只是等待 DOM 加载,而不一定是所有数据。

你能做什么

要使代码的行为与 JSFiddle 代码的行为相同,您可以使用上述任一函数。

编写类似代码的另一种常见方法是$(document).ready(function(){...});。与 onDomReady 代码一样,这只等待 DOM 加载。在我看来,这是最常用的方法,因为它最直观。

关于javascript - 为什么这个隐藏/显示 div js 只能在 jsfiddle 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432137/

相关文章:

jquery - 使用 jquery 显示/隐藏元素

php - 使用 XSL 和 Php 将 XML 数据转换为 HTML : only printing xml tags without any formatting

html - 在全屏包装器中垂直居中可变高度 div

javascript - 在 html 中嵌入基于服务器的 Bokeh 图

javascript - 更改循环中的值后绑定(bind)未更新

javascript - 如何使用 html5 而不是 adobe flash 来完成悬停效果的显示

javascript - radio 检查上的 jQuery 幻灯片内容

c# - 具有 "per-object"方法的语言的示例是什么?

javascript - Vue 过滤器 - 根据搜索输入返回对象

javascript - WebRTC偶尔会黑屏