0

私はこれを何百万回も行ったことがありますが、今回はうまくいきません! ボタンとして機能するリンクを含むフォームを動的に追加する機能があります

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 を使用することです

4

1 に答える 1

1

Select2 kills all mouse events inside the dropdown. The only solution I have found so far is to use an inline onclick

Here is also a solution that might help others with similar issues.

于 2013-09-27T07:35:07.000 に答える