2

J'ai un événement click attaché à une vue et el de cette vue est défini en utilisant className et tagName. Après avoir rendu cette vue, l'événement click ne se déclenche pas pour le sélecteur className.Les événements de vue de backbone ne se déclenchent pas lorsqu'ils sont attachés à la classe de niveau supérieur de l'élément.

est inférieure à la moi -

define([ 
'jquery', 
'underscore', 
'backbone', 
'models/MovieModel', 
'text!templates/movieTemplate.html' 
],function($,_,Backbone,Moviemodel,movieTemplate){ 

var Moviesview= Backbone.View.extend({ 
    tagName:'div', 
    className:'box', 
    events : { 
     'click .box': 'boxClicked' 

    }, 
    boxClicked: function(){ 
      alert('world'); 
    }, 
    initialize: function(){ 

    }, 
    render: function(){ 

     var data= {moviemodel: this.model.toJSON(), _:_ }; 
     var compiledTemplate =_.template(movieTemplate); 
     compiledTemplate= compiledTemplate(data); 
     this.$el.html(compiledTemplate); 
     return this; 
    } 
}); 
return Moviesview; 
}); 

Ce point de vue est d'un autre s'invoqué vue-

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'models/MovieModel', 
    'views/movieview', 
    'views/detailedmovieview' 
], function ($, _, Backbone, Moviemodel, Movieview, Detailedmovieview) { 
var Movieslistview = Backbone.View.extend({ 

     el: $('.content'), 
     initialize: function() { 
      var that = this; 
      this.collection.fetch({ 
       success: function (collection, response) { 
        that.render(); 
       }, 
       error: function() { 
        alert('failed!'); 
       } 
      }); 
     }, 
     render: function() { 
      this.collection.each(function (row) { 
       var temp = new Movieview({ 
         model: row 
        }); 
       this.$el.append(temp.render().el); 

      }, this); 
      return this; 
     } 
    }); 
return Movieslistview; 

});

modèle utilisé ici-

<div class='main-content'> 
<div class="actors"> 
    <div class="actors-label">Actors:</div> 
    <div class="actors-name"><%= moviemodel.actor_1_name %></div> 
</div> 
<div class="additional-info">    
</div> 
</div> 

événements Cliquez pour .main contenu et -info complémentaires de l'OMS déclenchez correctement mais pas pour .box.

Répondre

1

Pour joindre les événements à afficher l'élément, votre événement de liaison doit être:

events : { 
    'click': 'boxClicked' 
},