2
私が使用するウェブサイトには、ユーザーフォームが組み込まれています。ユーザーフォームには、複数のドロップダウンリストが含まれています。実行時に( 'DOMContentLoaded'で)、ドロップダウンリストのいずれもデータを含んでいません。 DDLを開くと、Javascriptを実行してリストをページにロードすると仮定します。On 'ElementHasChildren'イベント
要素:
<ul class='hidden' data-bind='template: { name: 'childTreeTemplate', foreach: Kids }' style='display:block;'>
<li class='treeItem'>...</li>
<li class='treeItem'>...</li>
<li class='treeItem'>...</li>
</ul>
私はこれを検出するイベントを設定することができます。
<ul class='hidden' data-bind='template: { name: 'childTreeTemplate', foreach: Kids }' style='display:block;'></ul>
'開口部' は3つの要素のリストがなった後?私はすでに試してみました
もの:
document.getElementsByTagName('ul')[1].addEventListener('DOMContentLoaded', function() {
alert('Content Loaded')
});
document.getElementsByTagName('ul')[1].addEventListener('onchange', function() {
alert('Changed')
});
document.getElementsByTagName('ul')[1].addEventListener('onload', function() {
alert('Loaded')
});
要素がロードされるとき、これらのイベントのいずれもが引き金ません(私はおそらく、その使用を誤解)...
私はuserformのマークアップを変更できないと思いますか?このページではライブラリKnockoutを使用しているので、最も信頼性の高いオプションは、** '** ko.applyBindings(...)'呼び出し後にコードが実行されるようにすることです。 –
マークアップを変更する可能性がある場合は、見てください:http://stackoverflow.com/questions/11893291/how-to-get-event-when-knockout-binding-is-done –
悲しいことに変更することはできませんマークアップは、サイトをロードする前にHTMLを変更する簡単な方法がない限りですか?以下の変異オブザーバの解決策は、私のニーズにもかかわらず動作します。私は今までノックアウトを聞いたことがない、そしてそれはなぜ主要なオブジェクトが "SEOko"であるのかを説明するだろう – Sancarn