div でもトリガーする必要があります。
$("button:last").click(function () {
$("button:first, #div1").trigger('bla', ["ilya"]);
});
編集
あなたのフォローアップの質問を見ました。ここでのユースケースが何であるかは完全には明らかではありませんが、私の提案は次の2つのアプローチのいずれかです。
---1---たとえば、カスタム イベントをリッスンする要素に CSS クラスを追加しclass="my-listener"
ます。
<button id="button1" class="my-listener">click1</button>;
<button id="button2">click2</button>;
<div id="div1" class="my-listener">div1</div>;
...と...
// Your original lister code is fine. Only need to do these individually (as opposed to my original suggestion, above) if you need each element to do something different when it catches the event)
$("button:first").bind('bla', function (e, text) {
alert("bla1 " + text);
});
$("#div1").bind('bla', function (e, text) {
alert("div " + e, text);
});
...次に、次のようにイベントをトリガーします。
$('.my-listener').trigger('bla', ["ilya"]);
それはうまくいくはずです。
---2---オブジェクトでイベントをトリガーするだけwindow
で、単一のリスナーの各要素に必要な処理を実行するロジックを持つ単一のリスナーを用意します。
$(window).bind('blah', function(event, data){
// Do something for button:last
// Do something with #div1
// etc.
});
$(window).trigger('bla', ['ilya']);
どのアプローチを使用するか (他にもあると思います) は、何を達成しようとしているかによって異なります。
乾杯