4

アプリケーションでリンクがクリックされたときに何らかのアクションを完了しようとしています。

たとえば、文書内に複数の内部リンクを含むマニュアルを作成しています。現在、私はそれらを次のように処理します:

function waitForClick()
{
    $('#about').click(function()
    {
        $('#container').slideDown();
    });

    $('#using').click(function()
    {
          changeContent...
    });

    <!-- etc, etc -->            

}

複数のクリック イベントを処理するより良い方法はありますか? どのアイテムがクリックされたかを委任する方法が必要だと確信しています。

HTML:

<li><a id="about" href="#">About this Application</a></li>
<li><a id="using" href="#">Using this Manual</a></li>
<li><a id="pages" href="#">Pages:</a></li>

<!-- etc, etc -->

これは、マニュアルの目次となるはずです。そのため、多くのローカル リンクが存在することになります。

4

3 に答える 3

1

個人的には以下のようなものを使います。大量のイベントが個別にキャストされることを回避し、目的に合わせて十分にスケーラブルです。あなたがすることは、あなたがそれぞれを認識できるように、イベントとIDを追加する必要がある各要素に「clickEventClasss」のクラス(またはあなたの好きなもの)を追加することです。

function waitForClick()
{

    $('.clickEventClass').click(function() {

        var id = $(this).attr('id');

        switch(id) {
            case 'about':
            //Logic
            break;
        case 'using':
            //Logic
            break;
        }

    });         

}
于 2012-07-08T16:07:07.633 に答える
1

クリックイベントをIDではなくクラスにバインドできます。

<a class="navigationLink" href="home.com">Home</a>
<a class="navigationLink" href="about.com">About</a>
<a class="navigationLink" href="contactus.com">Contact Us</a>

$(".navigationLink").click(function() {
    //Do something cool
});
于 2012-07-08T16:09:43.043 に答える
0

クリックイベントを割り当てるクラスを使用できます。

この後、次のことが可能です。

$(".class").click(function()
{
    if($(this).attr("id") == "about")
    {
        //code here
    }
    else if($(this).attr("id") == "using")
    {
        //code here
    }
}
于 2012-07-08T16:10:39.910 に答える