jQueryでのdelegate系(on/off)で、要素をフィルタしたい
jQueryのdelegate系(on/off)で、例えば以下のようにやると、<form>でもclickイベントが発動してしまうと思います。
var selector = 'a, form';
$(document).on('click submit', selector, function() {
// something
});
これを、var selector = 'a, form';
の部分は変えない前提で、<a>はclickイベントのみ、<form>はsubmitイベントのみ発動するようにできますでしょうか?
ちなみに、以下のようなものを試してみましたが動作しませんでした。
(どちらも発動されてしまいます)
var selector = 'a, form'; // ここは変えられない
$(document).on('click submit', selector, function() {
// something
});
$(document).off('submit', 'a'); // <a>はsubmitイベントを無効にしたい
$(document).off('click', 'form'); // <form>はclickイベントを無効にしたい
// これもダメでした。
$('a').off('submit');
$('form').off('click');
追記
やりたいこととしては、ajaxで他ページを取得し表示するというプラグインを作成しており、<a>タグ(ボタン系)と<form>に対応したいです。
ajaxでコンテンツを取得後、さらにその中に<a>や<form>等があれば、それも適用対象にしたいという感じです。