Bonjour ,

j ai un soucis avec mes ancres sous cakephp, en effet depuis quelques jours elles ne fonctionnent plus, mais uniquement sur la page d'accueil.

mes ancres sont en "brut" ```
<a href="#id"></a>

et ca fonctionnait à la base , mais maintenant non ^^

Voici mon scrool.js

(function($){

var sections = [];
var id = false;
var $nav = $('.navbar');
var $aNav = $('a', $nav);

$aNav.click(function(e){
    e.preventDefault();
    $('html, body').animate({
        scrollTop: $($(this).attr('href')).offset().top
    });

});

$aNav.each(function(){ //je recupère tous mes liens de la div nav
    sections.push($($(this).attr('href'))); 
    //$(recupère l'attribut href soit #quelquechose ) repasse dans jQuery
});
$(window).scroll(function(e){ //lorsque je scroll
    var scrollTop = $(this).scrollTop() + ($(window).height() / 3); //ecoute la position du scroll + 1/2 hauteur fenetre
    for(var i in sections){
        var section = sections[i];
        if(scrollTop > section.offset().top){
            scrolled_id = section.attr('id');
        }
    }
    if(scrolled_id != id){
        id = scrolled_id;
        $aNav.removeClass('current');
        $('a[href="#' + id + '"]', $nav).addClass('current');
    }

});

})(jQuery);

(function($){

var sections = [];
var id = false;
var $nav = $('.big_box');
var $aNav = $('a', $nav);

$aNav.click(function(e){
    e.preventDefault();
    $('html, body').animate({
        scrollTop: $($(this).attr('href')).offset().top
    });

});

$aNav.each(function(){ //je recupère tous mes liens de la div nav
    sections.push($($(this).attr('href'))); 
    //$(recupère l'attribut href soit #quelquechose ) repasse dans jQuery
});
$(window).scroll(function(e){ //lorsque je scroll
    var scrollTop = $(this).scrollTop() + ($(window).height() / 3); //ecoute la position du scroll + 1/3 hauteur fenetre
    for(var i in sections){
        var section = sections[i];
        if(scrollTop > section.offset().top){
            scrolled_id = section.attr('id');
        }
    }
    if(scrolled_id != id){
        id = scrolled_id;
        $aNav.removeClass('current');
        $('a[href="#' + id + '"]', $nav).addClass('current');
    }

});

})(jQuery);

(function($){

var sections = [];
var id = false;
var $nav = $('.btn_return_top');

$nav.click(function(e){
    e.preventDefault();
    $('html, body').animate({
        scrollTop: $($(this).attr('href')).offset().top
    });

});

})(jQuery);

hash = function(h) {
if (history.pushState) {
history.pushState(null, null, h);
}else{
location.hash = h;
}
}


mon fichier routes.php

<?php
/
Router::connect('/', array('controller' => 'pages', 'action' => 'index', 'home'));

Router::connect('/conditions-vente', array('controller' => 'pages', 'action' => 'conditions_vente'));
Router::connect('/sitemap', array('controller' => 'pages', 'action' => 'sitemap'));
Router::connect('/mentions-legales', array('controller' => 'pages', 'action' => 'mentions_legales'));
Router::connect('/confidentialite', array('controller' => 'pages', 'action' => 'confidentiel'));
Router::connect('/contact', array('controller' => 'pages', 'action' => 'contact'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
/*Boutique*/

Router::connect('/boutique', array('controller' => 'triptyques', 'action' => 'shop'));
Router::connect('/boutique/ardoises', array('controller' => 'triptyques', 'action' => 'ardoises'));
Router::connect('/boutique/cordages', array('controller' => 'triptyques', 'action' => 'cordages'));
Router::connect('/boutique/bougies', array('controller' => 'triptyques', 'action' => 'bougies'));
Router::connect('/boutique/porte_bijoux', array('controller' => 'triptyques', 'action' => 'porte_bijoux'));

Router::connect('/boutique/triptyque/*', array('controller' => 'triptyques', 'action' => 'shop_view'));

/* Galerie */ 

Router::connect('/galerie', array('controller' => 'triptyques', 'action' => 'show'));

Router::connect('/galerie/triptyque/*', array('controller' => 'triptyques', 'action' => 'show_view'));

/*Achat et infos personelles*/
Router::connect('/info-perso/*', array('controller' => 'clients', 'action' => 'personal_informations'));

/* Admin */ 

Router::connect('/admin', array('controller'=> 'users',
                                'action' => 'index'));

/**

  • Load all plugin routes. See the CakePlugin documentation on
  • how to customize the loading of plugin routes.
    */
    CakePlugin::routes();

/**

  • Load the CakePHP default routes. Only remove this if you do not want to use
  • the built-in default routes.
    */
    require CAKE . 'Config' . DS . 'routes.php';


Si vous avez une idée je suis preneur =)

3 réponses


Bomber
Auteur
Réponse acceptée

Sujet résolu c'etait un probleme de Css

Bonsoir.
Si tu n'as rien modifié sur le fichier javascript en question, vérifies dans l'inspecteur de ton navigateur s'il n'y a pas de problème ou penses à vider le cache de ton navigateur par exemple.
Il est inutile de créer un nouveau sujet pour le même problème (Liens Hs du jour au lendemain OVH).

Bomber
Auteur

Bonsoir,
désolé je pensais avoir pu précisé le sujet.
Le fichier n'as pas été modifié , je n'ai aucun problème détecté au sujet du javascript dans mon navigateur (le fichier est bien chargé).
le cache du navigateur a été vidé plusieurs fois.