0

カスタムイベントにバインドされているすべての要素(またはjQueryセレクター)を自動的に取得する方法があるかどうか疑問に思っていましたか?

つまり、次の要素をイベント「something_added」にバインドしました。

$('div#slider').bind('something_added',function(){});
$('input#add').bind('something_added',function(){});

とにかく、イベント名('something_added')を自動的に取得$('div#slider')して使用するには?$('input#add')

4

1 に答える 1

0

すべての要素を選択し、それらのイベントのコレクションをトラバースして、関心のあるイベントを探すことができます。

jQuery.each($('#someElementId').data('events'), function(i, event){

    jQuery.each(event, function(i, handler){

        console.log( handler.toString() );

    });

});

jquery1.8で動作するかどうかわからない


更新:これが私がまとめた例です:http://jsfiddle.net/nicholmikey/sADZU/5/

<html>

    <body>

        <form method="post" action="#">
            <input type="submit" value="Submit" onClick="return false">           
        </form>
    </body>

</html>​

およびjquery(1.7.2):

$('input').bind('something_added', function() {});


$.each($('*'), function(i, events) {

    var events = $(this).data('events');
    if (events != null) {
        $.each(events, function(h, event) {
            alert(event[0].type);
    });
}

});

探しているイベントを持つ要素を見つけたら、each($('*'))に関連する$(this)を使用して、探している作業を実行できます。

于 2012-10-05T16:41:44.847 に答える