I have made a Pen to show how to achieve the desired result。この例でわかるように、Bootstrapによって生成されたイベントは、モーダルを閉じるために使用された正確な要素を共有しません。彼らは、.target
と.currentTarget
のように、モーダル要素全体を参照しています。
したがって、モーダルを閉じるためにクリックされた要素を取得するために、jQueryセレクター機能を使用しました。このように:この場合
$("[data-dismiss='modal']").click(function() {
$("#data-dismiss").html('#'+ $(this).attr('id'));
});
、jQueryのが見つかりました。それらの要素に値modal
と取り付けの属性data-dismiss
を、持っているすべての要素は、それらがクリックされたときに実行されるコールバック関数を探しています。
私が作成した例のように、この属性には2つのボタンがあります。モーダルのヘッダー内の一つ:
<button id="header-close-button" type="button"
class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
モーダルのフッター内の別の1:
<button id="footer-close-button" type="button"
class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">Close</span>
</button>
どちらも、これらのボタンは、私はあなたが正確にクリックされた1つのチェックができることを表示するように設定異なるIDを持っている - を通してクリックイベントにアタッチされたコールバック関数の$(this).attr('id')
あなたは 'event.target'にそれを持っていませんか? –
@AllanSteppsソリューションをテストするためのcodepenを作成しましたが、event.targetはクリックされた要素ではなく、モーダル全体を指しています。 –
'event.currentTarget'はどうですか? (=イベントリスナーが接続されていたノード)https://developer.mozilla.org/en-US/docs/Web/Events/click –