par
benv8nam » 10 mai 2017, 18:01
Quand tu appels ton js il va attribuer à tout tes élément présent dans la page contenant la classe card l’événement onclick que tu lui as spécifié.
Si tu ajoutes un autre élément avec la classe card (après l'appel de ton js) il ne sera pas pris en compte.
Ce que tu fais c'est de supprimer ta div contenant ton élément avec la classe card et tu le reconstruit du coup ton js n'est pas appliqué dessus.
Ce que tu peux faire c'est externaliser ta fonction javascript et l'appeler à la fin de moveAllBody.
Tu peux faire quelque chose de ce genre (bien sur à retravailler).
$(function(){
//Variable global
oAlphaWrapper = $("#alpha_wrapper");
oBetaWrapper = $("#beta_wrapper");
oBodyWrapper = $("#body-wrapper");
$(".card").on("click", function (){
toto(oAlphaWrapper, $(this));
});
});
var toto = function toto(oAlphaWrapper, elem){
console.log(oAlphaWrapper.hasClass("fullpage"));
if( oAlphaWrapper.hasClass("fullpage") == true ){
moveAllBody( elem );
oAlphaWrapper.removeClass("fullpage");
}
else{
console.log('Enfin !');
addBodyDashboard( elem );
}
}
var moveAllBody = function( oCard ){
var oSelector = $(".card-wrapper");
oBodyWrapper.fadeOut().filter( oSelector.removeClass("col-sm-3") ).filter( oSelector.addClass("col-sm-6") );
oContentRefactor = oBodyWrapper.html();
//
oAlphaWrapper.removeClass("col-sm-10").addClass("col-sm-8");
//
oBetaWrapper.html("<div class='light-title'><h6>Petit titre</h6></div>" + oContentRefactor).addClass("col-sm-2").fadeIn();
oBodyWrapper.empty();
addBodyDashboard(oCard);
oBodyWrapper.fadeIn();
$(".card").on("click", function (){
toto(oAlphaWrapper, $(this));
});
};
var addBodyDashboard = function( oCard ){
console.log('add');
oBodyWrapper.append("<div>L\'id de la case est " + oCard.attr("id") +"</div>").fadeIn();
};
Quand tu appels ton js il va attribuer à tout tes élément présent dans la page contenant la classe card l’événement onclick que tu lui as spécifié.
Si tu ajoutes un autre élément avec la classe card (après l'appel de ton js) il ne sera pas pris en compte.
Ce que tu fais c'est de supprimer ta div contenant ton élément avec la classe card et tu le reconstruit du coup ton js n'est pas appliqué dessus.
Ce que tu peux faire c'est externaliser ta fonction javascript et l'appeler à la fin de moveAllBody.
Tu peux faire quelque chose de ce genre (bien sur à retravailler).
[js]$(function(){
//Variable global
oAlphaWrapper = $("#alpha_wrapper");
oBetaWrapper = $("#beta_wrapper");
oBodyWrapper = $("#body-wrapper");
$(".card").on("click", function (){
toto(oAlphaWrapper, $(this));
});
});
var toto = function toto(oAlphaWrapper, elem){
console.log(oAlphaWrapper.hasClass("fullpage"));
if( oAlphaWrapper.hasClass("fullpage") == true ){
moveAllBody( elem );
oAlphaWrapper.removeClass("fullpage");
}
else{
console.log('Enfin !');
addBodyDashboard( elem );
}
}
var moveAllBody = function( oCard ){
var oSelector = $(".card-wrapper");
oBodyWrapper.fadeOut().filter( oSelector.removeClass("col-sm-3") ).filter( oSelector.addClass("col-sm-6") );
oContentRefactor = oBodyWrapper.html();
//
oAlphaWrapper.removeClass("col-sm-10").addClass("col-sm-8");
//
oBetaWrapper.html("<div class='light-title'><h6>Petit titre</h6></div>" + oContentRefactor).addClass("col-sm-2").fadeIn();
oBodyWrapper.empty();
addBodyDashboard(oCard);
oBodyWrapper.fadeIn();
$(".card").on("click", function (){
toto(oAlphaWrapper, $(this));
});
};
var addBodyDashboard = function( oCard ){
console.log('add');
oBodyWrapper.append("<div>L\'id de la case est " + oCard.attr("id") +"</div>").fadeIn();
};[/js]