Подтвердить что ты не робот

Как связать события с динамическими сгенерированными кнопками в позвоночнике?

Как связать событие click с динамическими сгенерированными кнопками в backbone.js?

 window.PackageView = Backbone.View.extend({

    tagName: "div",

    className: "package-template",

    events:{
      'click #display-nodes'  :  'main', // This button is declared in my HTML code and calls main method successfully.
      'click .display'        :  'disp', // This is dynamic button generated with class as display
    },

    getAction: function(nodeId){ // Get Actions from NodeId and generate buttons
      $('.nodes').append("<button>" + action.Name + "</button>"); //Generate Buttons
      $(".nodes button").addClass("display");
    },

    disp: function(){
        alert("Inside Disp Function");
    },

При нажатии #display-nodes узлы отображаются по мере необходимости, но .display не работает. Как заставить эту кнопку вызывать функцию?

4b9b3361

Ответ 1

A Магистральный вид может получать события от динамически создаваемых элементов DOM через свойство events, если динамически сгенерированные элементы DOM являются потомками представления el. Соответствующий код находится в delegateEvents(). Он использует jQuery метод делегирования().

Наиболее вероятная причина, по которой он не работает для вас, заключается в том, что вновь созданный <button> не является потомком представления el. Я прав?

Если это так, и вы хотите сохранить элемент вне представления el, его можно удалить из свойства view events и делегировать на другой элемент в вашем представлении init.

>