将点击事件附加到html以点击链接后,我将点击的链接放在变量中,以便以后能够为其分配css规则:
$("html").on('click', '.someclass a', function(event) {
var clickedlink = $(this);
// a long chain of conditionals and functions
$(clickedlink).css("color", "red"):
}
如果点击的链接位于子菜单(ul ul a)中,我希望能够选择父链接(ul a),这样我就可以将相同的css规则分配给父链接。
我试过
var clickedlinkparent = $(this).parent();
$(clickedlinkparent).css("color", "red");
但这没有任何结果,所以我做错了什么。这样做的正确方法是什么?
更新:这里是菜单的结构,你可以看到,最基本的一个:
<div class="menu-container">
<ul id="menu" class="nav-menu">
<li>
<a href="http://www.someurl.com/">HOME</a>
</li>
<li>
<a>ABOUT</a>
<ul class="sub-menu">
<li><a href="http://www.someotherurl.com/">Our Company</a></li>
<li><a href="http://www.yetsomeotherurl.com/">News</a></li>
<li><a href="http://www.someevenlongerurl.com/">Events</a></li>
</ul>
</li>
</ul>
</div>
所以,我想要的是,当点击我们的公司链接时,我们公司和ABOUT都会分配相同的CSS。
答案 0 :(得分:0)
我认为你需要:
$(document).on('click', '.sub-menu a', function (event) {
event.preventDefault();
var $clickedlink = $(this);
// a long chain of conditionals and functions
$clickedlink.add($clickedlink.parents('li').find('> a')).css("color", "red");
});
答案 1 :(得分:0)
注意:在clickedLink中保存元素后,您无需再次将其放入jquery finder中。
clickedlink.css("color", "red");
clickedlinkparent.css("color", "red");
同样有用,如果您不确定是否选择了正确的元素,则可以始终使用console.log()。
console.log(clickedLink);