2016-01-02 181 views
0

我有一個按鈕,當我按下按鈕時需要創建更多按鈕。單擊按鈕創建按鈕

這是我爲按鈕寫着:

<div class="response-container" id="response-container"> 
    <a href="#" class="button add-button" id="add-button">Add button</a> 
</div> 

我努力學習Backbone.js的,所以我寫了一個視圖中單擊添加按鈕時,創建更多的按鈕。

createButton = Backbone.View.extend({ 
    events: { 
     'click .add-button': 'add_script' 
    }, 
    add_script: function() { 
     console.log('Pressed'); 
     //create a new button from here? 
    } 
}); 

任何人都可以幫助我做到這一點嗎? console.log('Pressed')甚至不起作用。我正在嘗試學習Web開發,有沒有任何文件可以建議我?我歡迎所有的建議在Backbone.js

+0

請你要麼清理您的HTML或張貼整個事情?我不確定那裏發生了什麼 – birdoftheday

+0

它應該是這樣的......事件:{ 「click.add-button」:「add_script」 }, – vrn53593

+0

解釋我們這是什麼意思['click .add-script-button':'add_script']在你的代碼中@waterkinq – vrn53593

回答

1

您必須創建視圖的對象。 像這樣

var createButton = Backbone.View.extend({ 
    el: '#response-container', 
    events: { 
     'click .add-button': 'add_script' 
    }, 

    initialize: function() { 
     console.log("initialized"); 
    }, 
    add_script: function() { 
     console.log('Pressed'); 
     //create a new button from here? 

    this.$el.append('<input type="button" value="new button"/>'); 


    } 
}); 

var cb = new createButton();

這裏是DEMO

+0

這就是謝謝你,我不知道初始化函數是必要的。謝謝你的工作 – waterkinq

+0

我沒有必要讓你明白當我們通過new創建視圖的對象時,視圖的初始化方法被調用。 – Ajey

1

你如何努力實現這是不是最佳實踐(因爲這應該通過模板完成),但你可以這樣做: 拳頭,你必須在你的定義EL元素的例子case el:'#response-container'

events: { 
     'click #add-button': 'add_script' 
    }, 
    add_script: function() { 
     console.log('Pressed'); 
     //if you have el 
     this.$el.append('<input type="button" value="new button"/>'); 
     //or as jquyer add element 
     var r= $('<input type="button" value="new button"/>'); 
      $("body").append(r); 
    } 
+1

我真的不明白他怎麼能讓腳本工作,當他的事件是錯誤的,而不是使用類.add-button,他試圖調用.add腳本按鈕,我錯了嗎? – vrn53593