jQueryのデリゲートメソッドのシグネチャは、次のような文書化されていますjQueryの委任パラメータ注文
.delegate(selector, eventType, handler)
は、パラメータがeventTypeをしてセレクタを交換し、以下を注文するだろうどのような状況はありますか?
.delegate(eventType, selector, handler)
私は何をするにしても、まずeventTypeを入れなければならないというプロジェクトがあります。たとえば、この私の現在のプロジェクト(これは単なるテストではなく、実際のコードです!)で動作する唯一のものです:
$('body').delegate('click', 'input', function (e) {
alert("Why is this the only way it will work for me in this project?");
});
文書によると、これは動作するはずです:
$('body').delegate('input', 'click', function (e) {
alert("This will never get hit");
});
I小規模なプロジェクトでテストされ、ドキュメントに必要なように動作します(ここでは例js fiddle:http://jsfiddle.net/wmdYr/16/)
Google CDNのjQuery 1.7.1を使用しています。
状況によっては、イベントが最初のパラメータになる必要がありますか?
提供されているjsfiddleをチェックアウトするには '.delegate'を使用しますが、' target'と 'event'パラメータは' .on'形式です:http://jsfiddle.net/wmdYr/16/ – Jasper
ありがとう!私はon()に切り替えませんでした.jsfiddleや小さなサンプルプロジェクトでうまく動作しているようです。可能な限り小さな部品を使って問題を抱えていた大規模なプロジェクトを打ち破りました。何をするにしても、最初にイベントを起こさせなければなりません。イベントを実行するときに文書化された順序を使用するbackbone.jsを使用する点を除いて、私はそれを検討するだけです。私のテストはバックボーンBTWの外でした。 paramsが別の順序である必要がある既知の状況がない限り、本当に奇妙で、おそらくSOでデバッグすることは不可能です! –