Я пытаюсь включить скрипт прокрутки Valums (http://valums.com/scroll-menu-jquery/) в динамически создаваемую разбивку на страницы плагина Cycle, http://www.malsup.com/jquery/cycle/pager2.html. В основном я пытаюсь получить динамическую разбивку на страницы (1, 2, 3...) для прокрутки при движении мыши.
Итак, у меня есть оригинальный демо-код Cycle:
$('#slideshow').before('').cycle({ fx: 'turnDown', скорость: 'быстро', время ожидания: 0, пейджер: '#nav',
// callback fn that creates a thumbnail to use as pager anchor
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#"><img src="' + slide.src + '" width="50" height="50" /></a></li>';
}
});
И затем я пытаюсь применить:
$(function(){ //Получить наши элементы для более быстрого доступа и установить ширину наложения var div = $('div#nav'), ul = $('ul#nav'), // левое поле ненумерованного списка ulPadding = 15 ;
//Get menu width
var divWidth = div.width();
//Remove scrollbars
div.css({overflow: 'hidden'});
//Find last image container
var lastLi = ul.find('li:last-child');
//When user move mouse over menu
div.mousemove(function(e){
//As images are loaded ul width increases,
//so we recalculate it each time
var ulWidth = lastLi[0].offsetLeft + lastLi.outerWidth() + ulPadding;
var left = (e.pageX - div.offset().left) * (ulWidth-divWidth) / divWidth;
div.scrollLeft(left);
});
});
Проблема в том, что:
var lastLi = ul.find('li:last-child');
не может найти последний элемент, потому что все элементы создаются динамически. Любые идеи, как можно ограничить сценарии, чтобы элементы внутри #nav можно было прокручивать при движении мыши?