Jquery 不隐藏带有变量的 DIV

发布于 2024-11-27 07:57:49 字数 1101 浏览 0 评论 0原文

基于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>

Building a JQUERY menu based on HOVER. When users mouse over ID TYPO it extracts the number of the TYPO ID and pass it to the ID of CAT. So if I hover DIV ID = TYPO2 it should display DIV ID=CAT2. This works fine except that I want to hide the CAT when mouse leaves and it doesn't work unless I declare again and repeat the catId variable in HOVER OUT.
IS there another more efficient way the to this ?

Thanks in advance

CODE :

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高冷爸爸 2024-12-04 07:57:49

如果您使用类和数据属性,事情就会变得更加容易:

<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(如果不需要)。

If you use classes and data-attributes it makes things much easier:

<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>

You can also get rid of the IDs altogether now (if not needed).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文