0

我正在尝试建立一个页面,其中有一些链接,当点击它们时,它会在同一页面上显示一个文本。我已经用 javascript/jQuery 完成了它,它工作正常。

我想要做的是改变活动链接的布局。我已经在之前关于该主题的问题上寻找了几个小时,但我有点迷茫,因为我是 javascript/jQuery 的新手

这是一个FIDDLE。你会看到我做了什么。我需要有关活动链接布局的帮助。例如,我想为链接的文本获得另一种颜色,这样我们就会知道哪个链接是活动的

这是我的html代码:

<div id="fond_soins">
    <a class"asoins" href="javascript:showonlyone('onglet1');" >
        <span class="icon">
            <div id="acu1">
                <h3 class="onglet">Titre 1</h3>
            </div>
    </a>
    <a class"asoins" href="javascript:showonlyone('onglet2');" >
        <span class="icon">    
            <div id="acu2">
                <h3 class="onglet">Titre 2</h3>
            </div>
    </a>
    <a class"asoins" href="javascript:showonlyone('onglet3');" >
        <span class="icon">
            <div id="acu3">
                <h3 class="onglet">Titre 3</h3>
            </div>
        </a>
</div>

<div class="clear"></div>

<div id="contenu_soins">
    <div class="newboxes" id="onglet1">
        <div class="rectangle"></div>
            <h2 class="titre_bloc">Titre1</h2>
            <div class="clear"></div>
            <div class="contenu-texte">
                <div class="contenu-texte"><p>bloc 1</p></div> </div>
            </div>
            <div class="newboxes" id="onglet2">
                <div class="rectangle"></div>
                    <h2 class="titre_bloc">Titre2</h2>
                    <div class="clear"></div>
                    <div class="contenu-texte"><p>bloc 2</p></div>
                </div>
                <div class="newboxes" id="onglet3">
                    <div class="rectangle"></div>
                        <h2 class="titre_bloc">Titre3</h2>
                        <div class="clear"></div>
                        <div class="contenu-texte"><p>bloc 3</p></div>
                    </div>
                </div>

这是CSS:

#fond_soins {
    height:280px;
    background-color:#FFF;
    width:100%;
}
#contenu_soins {
    background-color:#FFF;
    margin-top:30px;
    min-height: 242px;
    padding-top: 11px;    
}
.newboxes {
    padding-left:30px;
    padding-right:30px;
    padding-bottom:30px;
}
a.asoins, a.asoins:hover {
    text-decoration: none;
}
#acu1 {
    margin-left: 6em;
}

#acu1, #acu2, #acu3 {
    width:15%;
    height:165px;
    border-radius: 15px;
    border-style:solid;
    border-color: #E5EAD9;
    border-width:5px;
    color:#777;
    float:left;
    margin-right:1em;
    margin-top:69px;
}
#acu1:hover,#acu2:hover,#acu3:hover {
    border-color:#333;
    color:#333;
    text-decoration:none;
}

h3.onglet {
    text-align:center;
    padding-top:135px;
}

#onglet1 {
    display:block;
}
#onglet2, #onglet3 {
    display:none;
}

#acu1.active, #acu2.active, #acu3.active {
    border-color:#333;
    color:#333;
    text-decoration:none;
}

这是Javascript

function showonlyone(thechosenone) {
    $('.newboxes').each(function(index) {
        if ($(this).attr("id") == thechosenone) {
            $(this).show();    
        }
        else {
            $(this).hide();
        }
    });
};
4

3 回答 3

3

创建一个新的css类名“active”为

    .active #acu1,.active #acu2,.active #acu3
    {
        text-decoration: underline;
        border-radius: 15px;
        border-style: solid;
        border-color: Black;
        border-width: 5px;
    }

现在,对您的 javascript 函数进行小修正,通过发送this运算符 添加一个参数,例如: <a class"asoins" href="javascript:void(0);" onclick="javascript:showonlyone('onglet3',this);" ></a> 并在 js 函数中进行一些更改

function showonlyone(thechosenone,CurrCtrl) {

     $(".asoins").removeClass("active");
     $(CurrCtrl).addClass("active");

     $('.newboxes').each(function(index) {
          if ($(this).attr("id") == thechosenone) {
               $(this).show();    
          }
          else {
               $(this).hide();
          }

     });

};
于 2012-12-11T12:32:23.257 回答
0

尝试这个:

$(function(){
    var links = $('.asoins');

    links.click(function(){
        $(this).toggleClass('activelink', true);
        links.not(this).toggleClass('activelink', false);
    });
});

CSS:

#acu1:hover,#acu2:hover,#acu3:hover, #fond_soins .activelink div {
    border-color:#333;
    color:#333;
    text-decoration:none;
}

演示:http: //jsfiddle.net/yJYTT/119/

于 2012-12-11T12:38:30.750 回答
0

我喜欢纯 CSS 解决方案,所以我为你做了这个:

http://jsfiddle.net/vucMe/

它用于#a:checked ~ label[for=a]设置充当单选按钮的标签

于 2012-12-11T12:41:13.663 回答