2012-03-27 124 views
1

我有一個jQuery對話框,我在表格中使用了一些按鈕(用於編輯/刪除功能)。在jQuery對話框中將按鈕添加到我的按鈕

只有在之前編碼警報,我才能在這些按鈕上添加圖標。很奇怪。如果我刪除警報,則不顯示按鈕。

enter image description here

$().ready(function() { 

    $('.MaterialEdit').live("click", function() { 
     alert('clicked'); 
     $(".MaterialPackingEdit").button({ icons: { primary: "ui-icon-pencil"} }); 
     $(".MaterialPackingRemove").button({ icons: { primary: "ui-icon-trash"} });  
    }); 
}); 

上述對應使用的按鈕我的主頁上開設了jQuery對話框中的MaterialEdit類。

有什麼想法?

謝謝。

+0

不應該使用'$(document).ready(function(){...})',它等於'$(function(){...})' – jb10210 2012-03-27 13:07:43

+0

@ jb10210:它不會改變任何東西。不管怎麼說,還是要謝謝你。 – Bronzato 2012-03-27 13:09:41

+0

除非在點擊事件期間創建按鈕,否則應將按鈕初始化代碼移動到文檔就緒功能中,而不是單擊。你的瀏覽器是否有JavaScript錯誤? – lsuarez 2012-03-27 13:15:30

回答

0

問題中的一些標記肯定會有幫助。不管怎麼說,這裏的東西上的jsfiddle工程 - http://jsfiddle.net/FloydPink/e3pCL/

的想法是用「開放」的事件作爲記錄在dialog demo page像這樣:

open: function(event, ui) { 
     $('.MaterialPackingEdit').button({ 
      icons: { 
       primary: "ui-icon-pencil" 
      }, 
      text: false 
     }); 
     $('.MaterialPackingRemove').button({ 
      icons: { 
       primary: "ui-icon-trash" 
      }, 
      text: false 
     }); 
    } 

希望有所幫助。

編輯:函數本身到通用「對話框加載」功能OP在註解中提到的通過,下面的代碼片段可用於:

$(function() { 
    var onDialogOpen = function(event, ui) { 
      $('.MaterialPackingEdit').button({ 
       icons: { 
        primary: "ui-icon-pencil" 
       }, 
       text: false 
      }); 
      $('.MaterialPackingRemove').button({ 
       icons: { 
        primary: "ui-icon-trash" 
       }, 
       text: false 
      }); 
     }; 
    $('.dialog').dialog({ 
     autoOpen: false, 
     title:'Buttons As Icons on a jQuery Dialog', 
     width: 400, 
     open: onDialogOpen 
    }); 
    $('.MaterialEdit').click(function() { 
     $('.dialog').dialog('open'); 
    }); 
}); 

選中此更新到的jsfiddle - http://jsfiddle.net/FloydPink/e3pCL/27/

+0

感謝它幫助我很多問題:是否有可能使函數動態?我的意思是我有一個通用的我傳遞幾個參數(如寬度,高度,...)的DialogLoader也許我可以傳遞加載事件的函數名稱?可能? – Bronzato 2012-03-27 14:27:55

+0

當然。 onOpen回調函數可以作爲參數傳遞給DialogLoader函數,並用於對話框初始化。檢查更新到答案 – 2012-03-27 14:33:07

+0

這很酷。謝謝你Pink Floyd。 – Bronzato 2012-03-27 14:34:51

相關問題