J'ai un BackView ElementView qui a des DIVs avec ses classes et un DIV a la classe active
.La fonction jQuery ne se déclenche pas sur Backbone View Render
J'écris une ligne jQuery pour cacher tous les éléments il n'y a pas la classe active
mais ça ne marche pas.
Show.EventItemView = Marionette.ItemView.extend({
template: '#id-template',
events: {
'click #js-tabs li.js-tab': 'tabs'
},
tabs: function(e) {
var target = e.target,
tab_id = $(e.currentTarget).attr('js-data-tab-id');
$('#js-tabs .js-tab-content').hide();
$('#js-tabs .js-tab-content#' + tab_id).show();
},
initialize: function() {
$('#js-tabs .js-tab-content:not(.active)').hide();
console.log('Initialized');
}
});
Le texte « Initialisé » est affiché sur la console, mais les éléments qui n'a pas la classe active
ne sont pas hidded.
Si cette ligne $('#js-tabs .js-tab-content:not(.active)').hide();
est exécutée directement dans la console Chrome, elle fonctionne mais doit être déclenchée automatiquement lors du rendu de la vue (ou d'une autre méthode).
Merci pour toute avance.
Merci @vassiiskrikonis. L'utilisation de la méthode 'onShow()' fonctionne correctement. [Voici] (https://marionettejs.com/docs/master/viewlifecycle.html#show-view-events) quelques infos supplémentaires sur ces méthodes. – moreirapontocom