Скрипты, запущенные в загруженных jquery.ajax () страницах, запускают document.ready слишком рано

Мой сайт использовалjquery.load() сделать навигацию по большому фрагменту страницы. Я действительно ценю возможность включать только определенную часть загруженного контента, здесь div с id = "content":

$(frame_selector).load(url +" #content", function(response, status, xhr) {...});

Но теперь мне нужно иметь возможность запускать скрипты, которые являются частью динамически загружаемых страниц.Jquery.load() удаляет эти сценарии, ноjquery.ajax() не делает. Поэтому я продублировал функциональность частичного контентаjquery.load в вызове ajax как таковой:

$.ajax({
  url: url,
  dataType: 'html', 
  success: function(data, textStatus, XMLHttpRequest) {
      // Only include the response within the #content id element.
      $(frame_selector).html( jQuery("<div>")
            .append(data)
            .find("#content")
      );
  }
});

Проблема в том, что скрипты, которые динамически загружаются из вызова ajax, работают ненадежно. Иногда они, кажется, не имеют никакого эффекта, возможно, потому что они бегут слишком рано. Сценарии просто выполняют DOM-манипуляции в jquery - не полагаясь на изображения, флэш-память или что-то, что еще не загружено. Чтобы не застрять, у меня есть этот отвратительный хак, чтобы все заработало. Вместо загруженного AJAX-скрипта просто используется:

$(document).ready( function() {...} );  // unreliable

Я задерживаю сценарий за 200мс до запуска:

$(document).ready( window.setTimeout( function() {...}, 200 )); // HATE THIS

Кто-нибудь знает, как я могу сделать это надежно, без жесткого кодирования задержки? Я предполагаю, что это состояние гонки между<script> и моя логика для загрузки#content в новый div, но я не уверен, что с этим делать.

Ответы на вопрос(1)

Ваш ответ на вопрос