首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法“链接”几个元素?

有没有办法“链接”几个元素?
EN

Stack Overflow用户
提问于 2011-02-02 07:12:01
回答 1查看 65关注 0票数 1

假设我有4个可见的div:

3-2在顶部

-2在底部,包装在容器中

和1个隐藏div。

当鼠标悬停在底部div上时,它会更改其颜色并更改顶部div之一的颜色。

当用户单击底部div时,隐藏的div会出现并一直显示在屏幕上,直到鼠标离开容器。

我使用if语句来更改div的颜色,但我不确定这样做是否正确。也许有一种更简单、更优雅的方法可以做到这一点。

所以这里有一些问题:

我必须在这里使用if语句吗?也许有一种方法可以以某种方式“链接”成对的元素来减少代码量?

如果我想让顶级div保持活动状态,而隐藏的div是可见的,该怎么办?我是否需要再次使用if语句编写额外的函数?这不是违反了“不要重复自己”的规则吗?

代码示例如下:http://jsfiddle.net/Xq9kr

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-02 07:26:53

您可以通过structure创建隐式链接。

例如,使用此HTML:

代码语言:javascript
复制
<div class="top">
    <div>Div 1</div>
    <div>Div 2</div>
</div>
<div class="bottom">
    <div>Div 1</div>
    <div>Div 2</div>
</div>

然后您可以通过索引在顶部选择相应的div:

代码语言:javascript
复制
$('div.bottom > div').hover(function () {
    var index = $(this).toggleClass('highlight').index();
    $('div.top > div').eq(index).toggleClass('highlight');
});

,或者您可以通过数据属性和ID创建显式链接。

代码语言:javascript
复制
<div class="top">
    <div id="div1">Div 1</div>
    <div id="div2">Div 2</div>
</div>
<div class="bottom">
    <div data-for="div2">Div 2</div>
    <div data-for="div1">Div 1</div>
</div>

然后像这样选择:

代码语言:javascript
复制
$('#' + $(this).attr('data-for')).toggleClass('highlight');
// Or, even better if you're using jquery-1.4.3+
$('#' + $(this).data('for')).toggleClass('highlight');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4869053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档