shevgeny
@shevgeny
Дизайнер-верстальщик и художник по жизни :)

Как применить jQuery.on() к действию?

Казалось, бы, легчайшая задача, но что-то никак не могу сообразить. Есть функции:
$(document).ready(function() {
  $('#mydiv').scrollToFixed();
});

и
$(document).ready(function() {
  $('.header').scrollToFixed();
  $('.footer').scrollToFixed( { bottom: 0, limit: $('.footer').offset().top } );
});

(фиксация блоков bigspotteddog.github.io/ScrollToFixed)
Её нужно применить к загруженному содержимому через Auto-Dialog (api.jqueryui.com/dialog). Так как содержимое подгружается через ajax, можно функцию представить через .on(), но как это сделать в данном случае никак на могу сообразить. Поможете? :)
  • Вопрос задан
  • 2609 просмотров
Пригласить эксперта
Ответы на вопрос 4
shevgeny
@shevgeny Автор вопроса
Дизайнер-верстальщик и художник по жизни :)
Василий, не правильно написал. Если следовать документации, то стандартная функция выглядет так:
$( "#dataTable tbody tr" ).on( "click", function() {
  alert( $( this ).text() );
});

Без .on() она же выглядет так:
$( "#dataTable tbody tr" ).click(function() {
  alert( $( this ).text() );
});

Верно?
Тогда как быть с тем, что у меня нет в функции действия (то есть ни клика, ни чего-то еще), а есть только .scrollToFixed(), что это? Чем мы заменяем .click()?
Ответ написан
yuchiko
@yuchiko
если содержимое появляется в диалоге, то почему не прицепить событие на открытие данного диалога ?
$( ".selector" ).on( "dialogopen", function( event, ui ) {} );
Ответ написан
@sainttechnik
Frontend developer, в прошлом админ
Трудно понять вопрос по вашему описанию.
Если я правильно понял, то по клику на какой-то элемент открывается диалог, в который подгружается контент через ajax и вот уже после того, как контент подгрузился, на нем нужно выполнить определенные действия?
В таком случае в success обработчике ajax запроса после вставки ответа в диалог просто вызываете вашу функцию где-то так $('селектор элемента внутри диалога') .scrollToFixed(параметры).
Ответ написан
Вызывайте $.trigger('loaded'), когда содержимое будет загружено. А в другом месте пишите $(document).on('loaded', function() {
// делаете что-нибудь с загруженным содержимым.
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы