2013-02-27 88 views
0

餘米試圖啓用,點擊編輯按鈕禁用的控制,但使用jQuery委託function.Here是代碼我不能訪問它:如何委派在引導酥料餅()HTML元素,使用jQuery

$('#table-view-task').delegate('tr:not(:first)','click', function(){ 
    var id = $(this).find('td:first').text(); 
    var task = $(this).find('td:eq(1)').text(); 
    $(this).popover({ 
     html: true, 
     delay: { show: 0, hide: 0 }, 
     title: function() { 
       return '<div>'+task+'</div>'; 
     }, 
     content: function() { 
       return '<div id="pop-container">'+ 
         '<label>ID</label>'+ 
         '<input type="text" value="'+id+'" id="txt-edit-id" disabled/>'+ 
         '<label>Task</label>'+ 
         '<input type="text" value="'+task+'" id="txt-edit-task" disabled/>'+ 
         '<a href="#" class="btn" id="btn-edit-task">Edit</a>'+ 
         '<a href="#" class="btn" id="btn-save-task">Save</a>'+ 
         '</div>'; 
     } 
    }); 
}); 

這將正確打印所有html元素的彈出窗口。如何使用jquery訪問這些元素。 那麼如何進入編輯link.Here就是我想要做的是:

$('#pop-container').delegate('a','click', function(){ 
    alert('editing'); 
}); 

回答

0

您需要取消對鏈接的默認操作[編輯:並聽取body而不是#pop-container。嘗試

$('body').delegate('#btn-edit-task, #btn-save-task','click', function(e){ 
    e.preventDefault(); 
    alert('editing'); 
}); 

如果不取消對鏈接的默認行爲,他們就會帶你被他們href屬性指定的URL。

注意,因爲.delegate()已由.on()方法的jQuery 1.7和更高的被取代,這將是更好的事:

$('body').on('click', '#btn-edit-task, #btn-save-task', function(e) { 
    e.preventDefault(); 
    alert('editing'); 
}); 
+0

仍不working.I甚至使用id作爲selector.Its不工作其他元素如輸入。 – tutorame 2013-02-28 04:06:58

+0

對不起,那個跳到我身上,但我只注意到一些更重要的東西 - 彈出窗口不會被附加到該表格,它會被附加到文檔主體。所以你需要將事件處理程序委託給'body',而不是表格。我現在編輯我的答案。 – Liv 2013-02-28 12:15:35