Bonjour à tous, voici mon problème.

J'utilise BXslider pour des... sliders... je souhaite sur l'un d'eux avoir une barre allant de pager en pager (actifs). Ceci marche avec les div prev/next, mais pas les pagers (il semblerait que l'appel de ma fonction se fasse avant l'assignation de la classe 'active'). Voici le code intéressé.


	var value = ($('.bx-pager-item').length - 1) * $('.bx-pager-item').width();
	var activ_init = ($('.bx-pager-item').width() / 2) - $('.bx-pager-item').width();
	var current_position = activ_init;
	$('.bx-pager').append("<div id='slide'><div id='thechosenone'></div></div>");
	$('#thechosenone').width($('.bx-pager-item').width());
	$('#thechosenone').css('margin-left',activ_init);
	$('#slide').width(value);
	
	$('.bx-pager-item').click(
		function(){ assign();
	});
	$('.bx-next').click(
		function(){ assign();
	});
	$('.bx-prev').click(
		function(){ assign();
	});
	function assign(){
		current_position = activ_init + ($('.bx-pager-item').children('a.active').attr('data-slide-index') * $('.bx-pager-item').width());
		$('#thechosenone').css('margin-left',current_position);
	}


Si l'un d'entre vous peut avoir une idée?
Merci d'être passé.

EDIT:

Résolu !
il suffit de remplacer :
$('.bx-pager-item').click(
		function(){ assign();
	});


Par :
$('.bx-pager-item').click(
		function(){ 
		$('#thechosenone').css('margin-left', ($(this).children('a.active').attr('data-slide-index') * $('.bx-pager-item').width()));
	});


Si vous avez plus performant n’hésitez pas.
Modifié par Loricen (07 Jan 2016 - 18:21)