" rel="prettyPhoto" > " alt=""> ">
在下面给出的代码中,我显示了单击后在prettyphoto
查看器中打开的图像。
<s:iterator value="allPhotos">
<a href="#inline-<s:property value="pictureid"/>" rel="prettyPhoto" >
<img src="<s:property value="photourl"/>" alt="">
</a>
<div id="inline-<s:property value="pictureid"/>" id="hiddenimgbox">
<img src="<s:property value="photourl"/>" alt="">
<div class="overlay"><s:property value ="title" /></div>
</div>
</s:iterator>
这里我面临的问题是我不能隐藏下面的div标签,它应该只在查看器中打开。
<div id="inline-<s:property value="pictureid"/>" id="hiddenimgbox">
<img src="<s:property value="photourl"/>" alt="">
<div class="overlay"><s:property value ="title" /></div>
</div>
尽管我在文档头中提供了以下脚本来隐藏div
<script>
$("#hiddenimgbox").hide();
</script>
请纠正我..。
发布于 2013-01-02 11:15:37
该“元素”位于<s:iterator>
标记内,因此实际上将是多个元素。然而,在HTML页面中,ID必须是唯一的--只有一个元素应该有一个特定的ID。
当您调用$('#hiddenimgbox')
时,它将仅检索这些元素的一个,而不是所有元素。通过向it添加动态部件来使其唯一,或者改用类。
此外,如果您希望元素默认为隐藏状态,请在HTML中执行此操作,而不要使用JavaScript。这是不必要的,而且可能会导致用户在加载后立即看到页面调整大小。
还有一个我刚刚注意到的问题:在声明元素时设置了两个 id
属性:
<div id="inline-<s:property value="pictureid"/>" id="hiddenimgbox">
第二个可能会被忽略,所以你永远不会有任何id
等于hiddenimgbox
的元素。在这种情况下,我绝对建议您将hiddenimgbox
切换为每个元素的类:
<div id="inline-<s:property value="pictureid"/>" class="hiddenimgbox" style="display:none">
然后,在必要时使用$('.hiddenimgbox')
,而不是使用$('#hiddenimgbox')
。
发布于 2013-01-02 11:10:21
您必须等待DOM加载,然后才能访问页面上的元素,请使用:
<script>
/* Wait until the DOM is ready */
$(function(){
$("#hiddenimgbox").hide();
});
</script>
发布于 2013-01-02 11:24:09
您已经创建了两次id属性。所以浏览器将只接受第一个。把它改成这样,然后试试。
<div id="inline-<s:property value="pictureid"/> hiddenimgbox">
https://stackoverflow.com/questions/14120983
复制相似问题