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 に答える