Я боролся с этим некоторое время и не могу понять это. Надеюсь, это что-то очевидное, что я пропустил.
Вот код:
$(document).ready(function() {
$('#clickbox').load('eventpage/clicks.html.php #click2', function () {
console.log('click2 loaded');
$(this).hide()
.fadeIn(3000);
$('#click2').click(function(e) {
e.preventDefault();
console.log('click2 clicked');
$('#bizdev').load('pagewithscripttags.php', function (data) {
console.log(data);
console.log('#bizdev is loaded, but scripts are not run');
$('#bizdev').hide();
console.log('bizdev hidden');
});
$('#content').hide();
$('#bizdev').show();
});
});
Когда я запускаю это (из внешнего js-файла), файл 'pagewithscripttags.php' загружается в DOM при событии click, но сценарии не выполняются, и я не могу понять, почему. ПОМОГИТЕ!
Однако, когда я перемещаю метод загрузки в функцию обратного вызова первой загрузки, файл вставляется в DOM и запускаются сценарии:
$(document).ready(function() {
$('#clickbox').load('eventpage/clicks.html.php #click2', function () {
console.log('click2 loaded');
$(this).hide()
.fadeIn(3000);
$('#bizdev').load('pagewithscripttags.php', function (data) {
console.log(data);
console.log('#bizdev loaded and scripts are run');
$('#bizdev').hide();
console.log('#bizdev hidden');
});
$('#click2').click(function(e) {
e.preventDefault();
console.log('click2 clicked');
$('#content').hide();
$('#bizdev').show();
});
});
Почему сценарии выполняются как часть функции обратного вызова, а не как событие click (когда мне нужно, чтобы они запускались)?
Вот содержимое страницы pagewithscripts.php:
<script>console.log('this script was run');</script>
<script type="IN/MemberProfile" data-id="http://linkedin.com/publicprofileurl" data-format="inline" width='106px' data-related="false"></script>
Первый скрипт запускается и появляется в console.log, но второй просто вставляется в DOM без запуска, за исключением случаев, когда я помещаю метод .load () вне обработчика щелчка.
(Мне нужно загрузить сценарии для события click, потому что для их запуска требуется несколько секунд (они вызывают API-интерфейс LinkedIn), и когда я запускаю их на готовом документе, происходит зависание / задержка).