11544 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je me heurte à un bug puisque le code js écrit par un collègue inconnu (et que je dois débugguer) ne fonctionne que sous Chrome. J'ai beau tourner le problème en long en large et en travers, j'ai pourtant l'impression que tout doit se passer dans le javascript et non ailleurs (ça serait trop beau)

En gros voici ce que le script doit faire :
Au clic sur un lien, le script récupère des valeurs et les insère dans un espace <div> à la place d'un contenu déjà existant. Pas de problème sous Chrome bien que ça laggue un peu, mais rien sous FF et IE. Firebug et la console FF ne me trouve aucune erreur... Smiley ohwell

Voila le code associé à l'appel de ces valeurs (sous Wordpress)
var project = {
		project_type : $('#cycle-project-type ul'),
		subject_study : $('#cycle-subject-study ul'),
		main_projects : $('#main-projects'),
		filter_projects : $('#filter-projects'),
		single_project_links : $('#main-projects a'),
		subject_study : $('#subject-study'),

				var current_link = $(this).find('a').attr('href');

		    	self.display_project(current_link);
			});
			$('.project-controls p a').live('click', function(event) {
				event.preventDefault();

				var current_link = $(this).attr('href');

		    	self.display_project(current_link);
			});

			$('.project-controls .control-close').live('click', function(event) {
				event.preventDefault();

				$('#single-project').remove();
			});

			$('#project-type li').live('click', function(event) {
				event.preventDefault();

				var element = $(this).find('a');

				var id = element.data('id');
				var title = element.data('title');

				$.ajax({
					url: url_ajax,
					type:'POST',
					data:'action=filter_projects&id=' + id + '&type=type-projet',
					success:function(results) {
						results = results.substr(0, results.length - 1);
						$('#cycle-main-projects').html(results);

						if($('#filter-projects li').length > 3) {
							$('#filter-projects').jcarousel({
								scroll : 1
							});
						}

						$('#wrapper-mainprojects-title h2').text('Type de projet : ' + title);
					}
				});
			});
			$('#subject-study li').live('click', function(event) {
				event.preventDefault();

				var element = $(this).find('a');

				var id = element.data('id');
				var title = element.data('title');

				$.ajax({
					url: url_ajax,
					type:'POST',
					data:'action=filter_projects&id=' + id + '&type=theme',
					success:function(results) {
						results = results.substr(0, results.length - 1);
						$('#cycle-main-projects').html(results);

						if($('#filter-projects li').length > 4) {
							$('#filter-projects').jcarousel({
								scroll : 1
							});
						}

						$('#wrapper-mainprojects-title h2').text('Thème d\'étude : ' + title);
					}
				});
			});
		},
		display_project : function(current_link) {
			var self = this;

			$.ajax({
				url:current_link,
				type:'POST',
				success:function(results) {
					$('#single-project').remove();
					self.subject_study.parent().append(results);

					$('#single-project .single-project-cycle').cycle({ 
					    fx:     'fade', 
    					speed:  'fast', 
					    timeout: 10000,
					    next:   $('#single-project .wrapper-cycle .next'), 
					    prev:   $('#single-project .wrapper-cycle .prev') 
					});
				}
			});
		}
	}
	project.init();




Merci beaucoup pour votre aide!

Edit pour faire avancer : il y a une erreur Firebug au clic POST admin-ajax.php 404 not found. Personnellement ça ne me parle pas. L'erreur de peut pas venir de cette page sachant qu'elle est intouchable dans wordpress...

Edit2 : simplification du code sur l'appel Ajax qui pose problème.
Modifié par letty (16 Nov 2012 - 10:05)
Suite et fin, qui sait ça peut toujours servir pour d'autres Smiley smile

L'erreur ne venait pas de cette portion de code mais il fallait changer :

if(window.location.origin == 'http://cluster006.ovh.net') {


par

if(window.location.host == 'cluster006.ovh.net') {


Après si quelqu'un peut faire un petit résumé entre "origin" et "host" ce pourrait être cool Smiley smile