0

次のhtmlコードがあります。私のページには class='posta' を持つタグがたくさんありますが、 onclick イベントを post 属性を持つものにのみ割り当てたいのです。

<ul class="posts_li">
        <li>
            <a href="#" class="posta" post="status">Post</a>
        </li>
        <li>
            <a href="#" class="posta" post="act">Act</a>
        </li>
        <li>
            <a href="#" class="posta" post="event">Event</a>
        </li>
        <li>
            <a href="#" class="posta" post="news">Create News</a>
        </li>
    </ul>

イベントを割り当てるための私の Jquery コードはこちら

$(".posta").click(function(){
            alert("here");
            if($(this).attr("post")){
                alert($(this).attr("post"));
            }
        });
4

5 に答える 5

4
$(".posta[post]").click(....);

フィドル: http://jsfiddle.net/maniator/LmrPR/

于 2012-07-24T18:04:27.917 に答える
1

次に[attribute=value]、セレクターで使用します。

$('.posts_li').on('click', '.posta[post]', function() {
    alert($(this).attr("post"));
    return false;
});​

さらに、アイテムを親に委任することで、アイテムごとにイベントハンドラーを配置することを回避できます。この例では、メソッド(jQuery 1.7+)<ul>を使用して、すべての子要素に対して単一のハンドラーを配置しました。.on()古いjQuery(1.4.2 +)の場合.delegate()は、も利用できます。

于 2012-07-24T18:07:36.373 に答える
0

これは、css/jquery属性セレクターを使用して実行できます。

$(".posta[post]").click(......... your code here)

次に例を示します。http: //jsfiddle.net/wHvkF/

于 2012-07-24T18:12:32.033 に答える
0

私はそれを使用してそれを達成します:

この実用的な Fiddleの例を参照してください。リストの最後のものは警告しません

$(".posta[post]").click(function(e) {
    e.preventDefault();
    alert("here");
});

jQuery のバージョン 1.0 以降で動作します。

于 2012-07-24T18:16:02.580 に答える
0

属性セレクターを使用[propertyname]して、そのプロパティを持つノードのみを選択できます。

$(".posta[post]").click(function(){ ... });
于 2012-07-24T18:04:36.480 に答える