更改背景颜色而不参考

时间:2011-11-10 21:52:16

标签: javascript jquery html html5

我有一个锚点:

<a href="#" onclick="showInfo();" class="nostyle" ></a>

我没有idclass名称,因为我是在 xslt 中动态生成的。

当我点击它时,它会显示以前隐藏的包含<a id='close'>标记的div。我的想法是在点击关闭按钮时更改第一个锚点的背景颜色,但我不知道如何设置它。

如何获取点击的锚点并因此更改它?

2 个答案:

答案 0 :(得分:1)

查看此解决方案,查找包含多个隐藏div的页面,每个div都有一个显示/隐藏链接

http://jsfiddle.net/qfQhq/







这适用于1 div和1隐藏和1显示链接

一种简单的方法是,当您单击链接以显示隐藏的div时,通过将$(this)指针存储到全局变量然后显示隐藏的div来保存对链接的引用。如果打开隐藏div的链接具有背景颜色(或类来执行此操作),则可能需要在此时将其删除。 (如果关闭div时颜色只显示,你也可能希望它在打开div时消失?) 单击关闭按钮后,您可以简单地引用相同的全局变量,就像它是一个DOM元素一样,并更改它的背景颜色(或者为它添加一个类,为您完成它)。

$(document).ready(function(){

1)创建全局变量

var showInfoLink = "null";

2)存储$(this)(触发showInfo();的DOM元素)

function showInfo() {
    showInfoLink = $(this);
    showInfoLink.removeClass("highlighted"); //if you closed the div & opened again
    $("#hidden_div_selector").css("display", "block"); //show hidden div
}

3)更改背景颜色或链接

$("#hidden_div_close_button_selector").click(function(){
    if (showInfoLink != "null")
    {
        showInfoLink.addClass("highlighted"); //color the background of the link
        $(this).css("display", "none"); //hide the hidden div
        showInfoLink = "null";
    }
}

4)CSS对于'突出显示'类(改变了bg颜色)

.highlighted {
    background-color: #de9f3c; //random color
}

确保全部在$(document).ready()

});

答案 1 :(得分:0)

您必须将第一个锚的引用传递给showInfo函数。 像onclick =“showInfo(this);”。 您可以在单击关闭按钮时设置背景颜色,因为您有对第一个锚点的引用。有意义吗?