我在点击图片时试图显示/隐藏div。当我点击图像时没有任何反应。我的代码有什么问题
<script type="text/javascript">
$('#close').click(function(){
$('#main').show();
$('#login').hide();
});
</script>
<div style="float:right;"><a href="#">Close <img id="close" src="assets/close.png"></a></div>
答案 0 :(得分:2)
这可能是因为当您的脚本执行时,close
图片尚未存在。将您的设置换入$(document).ready
块
轻微更新:
在我自己的机器上进行快速测试时,在图片标签上调用.click(..)
并没有做任何事情。我更改了它,因此close
元素实际上是<a>
,并且事情有效。
相关HTML:
<a id="close" href="#">Close (image goes here)</a>
答案 1 :(得分:1)
<script type="text/javascript">
$(function(){
$('#close').live('click',function(){
$('#main').show();
$('#login').hide();
});
});
</script>
<div style="float:right;"><a id="close">Close <img src="assets/close.png" /></a></div>
使用实时功能。 此外,我会定位一个标签,以便文本也触发它。
答案 2 :(得分:0)
首先,您不应多次使用相同的ID。
然后:
<script type="text/javascript">
$('#image').click(function(){
$('#close').toggle();
});
</script>
<div id="close" style="float:right;"><a href="#">Close <img id="image" src="assets/close.png"></a></div>
当然这也会隐藏你的图像,所以你没有任何东西可以点击..但这是一个开始。
答案 3 :(得分:0)
当涉及到使用id和类名时,有一个非常好的经验法则。如果您要在模板中多次使用它,请将其作为一个类。在main,login,header或footer的情况下,Id工作正常,但在这里我会使用一个类。
现在这不是造成你问题的原因,但我想我会指出这一点。你的问题可能是因为选择器试图找到尚未存在的东西。你有两个选择
1。)将脚本移动到页面底部
2.)将代码包装在就绪函数中(仅在dom准备好后才执行。
以下是我的建议的更新代码示例
<!DOCTYPE HTML>
<html>
<head>
<title>Click Handler</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('.close').click(function(){
$('#main').show();
$('#login').hide();
});
})
</script>
</head>
<body>
<div style="float:right;"><a href="#" class="close">Close <img src="assets/close.png" class="close"></a></div>
<div id="main" style="display:none;">Main</div>
<div id="login">Login</div>
</body>
</html>
答案 4 :(得分:0)