Добавление вертикальной прокрутки jQuery в динамическое содержание
-
10-10-2019 - |
Вопрос
Я разрабатываю веб -сайт, и я хочу, чтобы основной Div был фиксированной высотой с вертикальным прокручиванием jQuery для контента, который переполняет эту область. Для этого я использую плагин Jscrollpane.
Тем не менее, я хочу динамически загрузить этот контент из RSS -канала, используя плагин Zrssfeed (я новый пользователь, поэтому я не могу публиковать 2 ссылки!).
Для этого мне нужно назвать функцию RSSFEED таким образом:
$ ("#Feed"). RSSFEED (.... URL -адрес и опции FEED);
Затем я хочу применить jscrollpane к Div, который динамически создается, вызывая функцию RSSFEED. Однако каждый раз, когда я пытаюсь найти элемент jQuery, его еще не существует.
Насколько я знаю, RSSFEED не включает функцию обратного вызова, которую я мог бы использовать, и я попытался функционировать цепочку JScrollPane после вызова RSSFEED, но это тоже не сработало.
Какие-либо предложения??
Решение
Придется согласиться с Дэвидом, что это оставляет многое желать, но, в качестве альтернативы, вы можете просто реализовать обработчик обратного вызова в классе:
В том же месте, что и Дэвид, сразу после $(e).html(html);
Добавьте следующее:
if(options.complete!=null) { options.complete();
}
Затем в вашем HTML:
$(document).ready(function () {
$('#feed').rssfeed('http://myrssfeedurl', {
limit: 5,
complete: function() { $("#feed div").jScrollPane(); }
});
});
Другие советы
Я быстро посмотрел на плагин Zrssfeed, и код оставляет многое, чтобы пожелать ... Однако вы сможете добавить свой собственный триггер в конце функции _callback, сразу после $(e).html(html);
в самом конце сценария. Попробуйте добавить:
$(e).trigger('rss');
А потом в вашей основной программе вы можете прослушать событие RSS на элементе, например:
$('#feed').bind('rss', function() {
// the html should now be injected
}).rssfeed( '/stuff.xml' );
Это не красиво, но может быть быстро, если это то, что вам нужно здесь.