2014-01-27 3 views
0

Этот код прекрасно работает для создания плавного перехода к следующему якорю на моей странице.jQuery ScrollTop After Delay

<script type="text/javascript"> 
    $("#blockTwo").on("click", ".child", function(e) { 
     $('html, body').delay(800).animate({ 
     scrollTop: $('#scrollThree').offset().top 
     }, 1500, "swing"); 
    }); 
    </script> 

Однако, поскольку содержание в элементе якоря загружается через AJAX после того, как событие щелчка анимация имеет скачок в середине пути через. Я думал, что могу обойти эту проблему, добавив задержку в анимацию, чтобы контент загружался до начала анимации. Не уверен, что это либо хорошая идея, либо возможно?

Благодаря

ответ

0

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

Обратите внимание на второй параметр on():

$(".parentElement").on("click", ".child", function(e) { 

Таким образом, для конкретного примера:

$("#blockOne").on("click", ".child", function(e) { 

Таким образом, когда .click загружается в через AJAX, это будет иметь слушателя предоставленный ему его статическим родителем #blockOne. Надеюсь, это имеет смысл.

+0

Hi. Большое спасибо за ваш ответ. Извините, но я не понимаю 100%, и то, что я пробовал с вашей идеей, не сработало. Есть ли шанс, что вы можете просто набросать свою идею чуть более подробно. Извините, спасибо! – user1098178

+0

можете ли вы включить свой 'html'? просто до 'div', где вы размещаете динамический контент – Phil

+0

Я сделал это. Надеюсь, это имеет смысл! – user1098178