私はこれを何百万回も行ったことがありますが、今回はうまくいきません! ボタンとして機能するリンクを含むフォームを動的に追加する機能があります
content += '<a name="btn-opprettKontakt" id="btn-opprettKontakt" class="btn-opprettNy btn btn-small btn-primary pull-right" data-action="opprettKontakt">Opprett</a>';
return content;
次に、リンク用のこのイベントハンドラーがあります
$('body').on('click','.btn-opprettNy', function() {
alert('button clicked');
});
フォームは select2 コンテナー内にあり、これも動的に追加されるため、'body' 以外の親要素はありません。しかし、これは決して発火しません。
また、他のすべてのボタンで機能するデータアクションをチェックするすべての「ボタン」要素のイベントハンドラーもあります。このリンクをボタンに変更すると、どちらも起動しません。
ここで何か不足していますか?'body' のように document.ready に存在する要素を使用する場合、.on() は動的に追加された要素に対して機能するはずですよね? たぶん、select2 コンテナーがめちゃくちゃになっているのではないでしょうか?
動的に追加された要素には、正常に機能する他のイベント ハンドラーがあります。
アップデート
Select2 は、ドロップダウン内のすべてのマウス イベントを強制終了します。これまでに見つけた唯一の解決策は、インラインの onclick を使用することです