問題は、Chosen プラグインが、とりわけ、そのコンテナー内の要素を"#fayls"
ID で変換することにあると思います。このことを考慮:
HTML:
<div id="something"></div>
<div id="completely_different"></div>
<button id="change_something" type="button">Change!</button>
JS:
$('#change_something').click(function() {
$('#something').append($('<p>Internal P</p>'));
});
$('#something').bind("DOMNodeInserted", function(event) {
alert(event.target);
$("#completely_different").append($('<p>SOme p</p>'));
});
JSフィドル
期待どおりに機能します (ボタンをクリックするたびに、<p>
要素が両方の div に追加されます)。
ここで、HTML を少し変更してみましょう。
<div id="something">
<div id="completely_different"></div>
</div>
<button id="change_something" type="button">Change!</button>
JSフィドル
...そして今、イベントは無期限に発生します-内側の div を更新すると、DOMNodeInserted はまだ外側の div にバブルアップするためです。
また、DOMNodeInserted イベントは現在非推奨であると見なされていることにも注意してください (ただし、ここで説明されているように、IE9 ではまだサポートにバグがあります)。