0

将单击事件附加到 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>

所以,我想要的是,当点击 Our Company 链接时,Our Company 和 ABOUT 都分配给它们相同的 CSS。

4

2 回答 2

0

我认为你需要:

http://jsfiddle.net/fXxev/4

$(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");

});
于 2013-06-04T15:35:42.870 回答
0

注意:一旦将元素保存在 clickedLink 中,就不需要再次将其放入 jquery finder 中。

clickedlink.css("color", "red");

clickedlinkparent.css("color", "red");

同样有用的是,如果您不确定是否选择了正确的元素,您可以随时使用 console.log()。

console.log(clickedLink);
于 2013-06-04T15:35:48.983 回答