我的剧本:
<script> ( function($) {
$(document).ready( function() {
$("div.area_map").click( function () {
$('div[id^=grass]').each(function(div) {
$('img.hoverswap').css("width","229");
$('img.hoverswap').css("height","124");
$('img.hoverswap').attr("src","default/citymap/D5.png");
$('img.hoverswap').css("z-index", "9999")
} );
});
} ) ( jQuery );
</script>
和div:
<div class="area_map" id="grass
<?php echo $k+$st_x/2; ?>"
style='cursor:pointer; width:118px; height:51px; position:absolute;
left:<?php echo $st_x; ?>px;
top:<?php echo $st_y; ?>px;'>
<img src="default/citymap/Zale2.png" name="table" border="0"
usemap="#tableMap" class="hoverswap"
style='cursor:pointer; z-index:-300; width:118px; height:51px;'/>
</div>
答案 0 :(得分:0)
使用强>
$(document).ready( function() {
$("div.area_map").click( function () {
$('img.hoverswap')
.css(
{
"width":"229",
"height":"124",
"position":"absolute",//to make z-index work
"z-index", "9999"
})
.attr("src","default/citymap/D5.png");
});
});
还为 div.area_map
编辑cssdiv.area_map{
position:relative;
}
这将使您的z-index相对于area_map
工作答案 1 :(得分:0)
为了澄清JapanPro和zrytane给出的答案,$('img.hoverswap')
查找文档中的所有匹配项,无论您将其称为何种范围。
$('img.hoverswap', this)
将范围限制为this
,而不是默认的document
。
$(this).find('img.hoverswap')
为this
设置jQuery包装器,然后在其中进行搜索。
两者同样运作良好,但你必须自己对它们进行基准测试,看看是否存在速度差异。 (直观地说,不应该)
但是,由于您反复创建和丢弃jQuery对象,因此您的脚本效率很低。这是我编码的方式:
<script>
(function($) {
$(document).ready( function() {
$("div.area_map").click( function () {
$('img.hoverswap', this).css({
width: "229",
height: "124",
zIndex: "9999"
}).attr("src","default/citymap/D5.png");
});
});
}) ( jQuery );
</script>
这样,你只需要为img.hoverswap查询创建一次包装然后发送多个命令。您还会注意到我使用了.css()的地图形式,由于Javascript对象文字的限制,它使用了camelCase而不是虚线名称。