根据HOVER构建JQUERY菜单。当用户将鼠标移到ID TYPO上时,它会提取TYPO ID的编号并将其传递给CAT的ID。因此,如果我悬停DIV ID = TYPO2,它应该显示DIV ID = CAT2。这种方法很好,除了我想在鼠标离开时隐藏CAT,除非我再次声明并在HOVER OUT中重复catId变量,否则它不起作用。 还有另一种更有效的方法吗?
提前致谢
代码:
<script>
$(document).ready(function() {
$("#cat1, #cat2, #cat3").hide();
$("#typo1, #typo2, #typo3").hover(function(){
var catId = $(this).attr('id');
catId = catId.substring(4,5);
$("#cat"+catId).show("fast")
},
function(){
var catId = $(this).attr('id');
catId = catId.substring(4,5);
$("#cat"+catId).hide("fast")
});
});
</script>
<div id="container">
<div id="typo">
<div id="typo1" class="typo">Typo1</div>
<div id="typo2" class="typo">Typo2</div>
<div id="typo3" class="typo">Typo3</div>
</div>
<div class="clear"></div>
<div id="cat">
<div id="cat1">CAT1</div>
<div id="cat2">CAT2</div>
<div id="cat3">CAT3</div>
</div>
</div>
答案 0 :(得分:0)
如果使用类和数据属性,它会使事情变得更容易:
<script>
$(document).ready(function() {
$(".cat").hide();
$(".typo").hover(function(){
var catId = $(this).data('id');
$(".cat[data-id='"+catId+"']").show("fast")
},
function(){
var catId = $(this).data('id');
$(".cat[data-id='"+catId+"']").hide("fast")
});
});
</script>
<div id="container">
<div id="typo">
<div data-id="1" class="typo">Typo1</div>
<div data-id="2" class="typo">Typo2</div>
<div data-id="3" class="typo">Typo3</div>
</div>
<div class="clear"></div>
<div id="cat">
<div data-id="1" class="cat">CAT1</div>
<div data-id="2" class="cat">CAT2</div>
<div data-id="3" class="cat">CAT3</div>
</div>
</div>
您现在也可以完全删除ID(如果不需要)。