2015-11-01 78 views
0

我試圖在zabuto日曆中添加更多的功能。這是一個模式將出現在點擊日期後,允許我們添加或刪除這一天的事件。但我無法捕捉事件點擊這個模式中的按鈕。這是我的代碼。捕獲事件點擊jquery創建的模式內的按鈕

function createModal() { 
// create a modal 
//... 
var $modalFooterButtonSave = $('<button id="btnSave">Save</button>'); 
var $modalFooterButtonDelete = $('<button id="btnDelete">Delete</button>'); 
//... 
//return this modal 
} 

function myDateFunction() { 
//Add modal into html page 
$("#myModal").html(createModal()); 
//Show modal 
$('#adjustModal').modal('show'); 
return true; 
} 
$(document).ready(function() { 
    // zabuto event click on date 
    $("#my-calendar").zabuto_calendar({ 
     action: function() { 
      return myDateFunction(); 
     } 
    }); 
    //Here is problem, i can't catch the event click on this button. 
    $("#btnSave").click(function(){ 
     alert("The btn Save was clicked."); 
    }); 
} 

回答

0

使用這個代替:

$(document).on('click', '#btnSave', function(){ 
    alert("The btn Save was clicked."); 
}); 
+0

如果'#btnSave'不會在DOM存在代碼執行的時候,你能指望這個來完成? – David

+0

我明白它會被模態添加。 –

+0

它會的,而這正是OP所面臨的問題。該代碼在頁面加載時執行,並在稍後將元素添加到頁面中。您的解決方案與原始代碼具有相同的問題。 '$(「#btnSave」)'在執行時沒有找到任何元素。 – David