J'essaie de trouver un moyen de minimiser le nombre de consultations du sélecteur. Mon problème est que j'ai une variable définie avec la base $(document).ready() qui doit être mise à jour dans les fonctions imbriquées dans $(document).ready().
Considérez cet exemple (EDIT : je l'ai mis à jour pour qu'il soit plus explicatif)
<script>
//var $current_page = $home_page; **<--I DONT want to do this, going global
and of course it doesn't work since
$home_page isn't defined yet.**
$(document).ready(function() {
var $home_page = $("#home-page");
var $portfolio_page = $("#portfolio-page");
var $about_page = $("#about-page");
var $current_page = $home_page; // **<--This variable, in this scope level,
// is what I want updated**
$("#home-btn").click(function () {
$current_page.stop()
$current_page.show()
$current_page.animate({
duration: 360,
easing: 'easeInCirc',
complete: function() {
$(this).css({ top: -700 });
}
);
$current_page = $home_page;
});
$("#portfolio-btn").click(function () {
$current_page.stop()
$current_page.show()
$current_page.animate({
duration: 360,
easing: 'easeInCirc',
complete: function() {
$(this).css({ top: -700 });
}
);
$current_page = $portfolio_page; //<--This needs to somehow update the
// variable in the $(document).ready
// scope, but not global**
});
});
<script>
Comment puis-je mettre à jour la variable $current_page ? sans en en faisant une variable globale ?
EDIT : Ceci est fait pour animer la div de la page actuelle lorsque vous cliquez sur un élément de menu. Oui, il manque des choses, oui cela peut ne pas avoir de sens. C'est juste un exemple, pas l'application réelle.
Je comprends que cet exemple est encore trivial pour les performances, ignorez ce fait. Je veux juste savoir comment réaliser cela, pas une leçon sur le fait que c'est la meilleure pratique ou performance. Merci à tous.