HTML の AJAX 呼び出しによって HTML と Javascript で埋められた親ページに div があります。
読み込まれた Javascript は、読み込まれた HTML の要素に「変更」イベントをバインドします。
最初の AJAX 呼び出しの後、イベントは常に発生します。ただし、後続の AJAX 呼び出しでは、決して実行されません。
親ページ自体は、祖父母ページの div に入力されます。また、子ページが親ページの div に入力される前に、HTML の別の AJAX 呼び出しによって親ページが祖父母ページの div に入力されます。これが私の問題と関係があるかどうかはわかりません。
イベントをバインドする前に (.on を使用して) オブジェクトで .off() を呼び出しても、まったく役に立ちません。
要素は次のとおりです。
<select id="groupSelection" name="grouping" style="width:275px;">
<option value="0" selected>No Grouping - Single Creative Ad Unit</option>
<option value="1">New Creative Group</option>
<?php foreach($placementGroups as $placementGroup): ?>
<option value="<?=$placementGroup->get_id()?>" data-height="<?=$placementGroup->get_height()?>" data-width="<?=$placementGroup->get_width()?>"><?=$placementGroup->get_name()?> - Height: <?=$placementGroup->get_height()?>px x Width: <?=$placementGroup->get_width()?>px</option>
<?php endforeach;?>
</select>
バインディング イベントは次のとおりです。
$('#groupSelection').off().on('change', function() {...});
しかし、2 回目の AJAX 呼び出しの後に $('#groupSelection').change() を明示的に呼び出すと、それが起動します。
私は何をする必要がありますか?ありがとう
編集:
私のコードには、子が ajax 関数を呼び出す場所が 1 つあります。この関数は、それ自体をリロードするだけでなく、親もリロードします。ajax 関数を呼び出す直前に $('#groupSelection').off() を呼び出すと、正常に動作します。
ただし、親にも子をリロードする関数があります。これらの関数のいずれかで子をリロードする前に $('#groupSelection').off() を呼び出すと、まだ同じ問題があります。