次のように、標準化された表示/非表示要素システムを作成しようとしています。
<div class="opener popup_1">Click Me</div>
<div class="popup popup_1">I'm usually hidden</div>
オープナー クラスで div をクリックすると、ポップアップ クラスで div が表示されます。特定のページにいくつのオープナー/ポップアップの組み合わせがあるかわかりません。特定のページのどこにオープナーとポップアップが表示されるかわかりません。また、どのように表示されるかもわかりません。特定のオープナーが show() を呼び出す必要がある多くのポップアップ。オープナーとポップアップの両方が、jQuery で使用されるものよりも多くのクラスを持つことができなければなりません。
私がやりたいことは次のようなものです:
$(".opener").click(function() {
var openerTarget = $(this).attr("class").filter(function() {
return this.class.match(/^popup_([a-zA-Z0-9-_\+]*) ?$/);
});
$(".popup." + openerTarget).show();
アイデアは、オープナーをクリックすると、オープナーのクラスから「popup_whatever」を除外し、それを openerTarget として保存するというものです。次に、class=popup と openerTarget を持つものはすべて表示されます。