JQuery перестает работать после вызова AJAX

Я использую бутстрап и сборщик часов из http://weareoutman.github.io/clockpicker/

Он отлично работает, когда я загружаю главную страницу. Но когда я загружаю новый контент из другого php-файла в div с помощью вызова AJAX, часы перестают работать.

Clockpicker использует jQuery внизу страницы.

Новый контент, который я загружаю с помощью ajax, также содержит кнопку ClockPicker. Но это не сработает. Что-то не так с jQuery внизу страницы?

Я новичок в jQuery и не знаю ни синтаксиса, ни языка.

<?PHP

echo "<div class=\"input-group clockpicker col-md-6\" data-placement=\"right\" data-align=\"top\" data-autoclose=\"true\">";
echo "<input
type=\"text\"class=\"form-control input-sm\" onchange=\"ajax_function('kuk','alter_schedule.php?ltime='+this.value+'&cid=".$child_id."&date=".$row['date']."&what=3')\" value=\"".date("H:i", strtotime($row['schedule_start']))."\">";
echo "<span class=\"input-group-addon\">";
echo "<span class=\"glyphicon glyphicon-time\"></span>";
echo "</span>";
echo "</div>";

?>

<script type="text/javascript">

$('.clockpicker').clockpicker();

</script>

-1

Решение

jQuery знает только об элементах на странице во время ее запуска, поэтому новые элементы, добавленные в DOM, не распознаются jQuery. Для борьбы с этим использовать делегирование мероприятия, всплывающие события от недавно добавленных элементов до точки в DOM, которая была там, когда jQuery запускался при загрузке страницы. Многие люди используют document как место, где можно поймать всплывающее событие, но не обязательно подниматься так высоко в дерево DOM. в идеале Вы должны делегировать ближайшему родителю, который существует во время загрузки страницы.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]