簡體   English   中英

jQueryUI Modal-添加多個按鈕

[英]jQueryUI Modal - Adding multiple buttons

使用jQuery UI時,可以在init之后設置模態按鈕,如下所示:

$( ".selector" ).dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );

但是我想做的是根據邏輯條件添加多個按鈕:

if ( canClose ){
    $( ".selector" ).dialog( "option", "buttons", { "Ok": function() { $(this).dialog("close"); } } );
}

if ( canAlert ){
    $( ".selector" ).dialog( "option", "buttons", { "Ok": function() { alert('Hello'); } } );
}

但是,上面的代碼無法正常工作,因為它每次都會重置按鈕數組。

如何在不丟失任何現有按鈕的情況下使用邏輯添加X個按鈕?

像這樣嘗試:

var buttons = {};

if (canClose) {
     buttons.Close = function() { $(this).dialog("close"); }
}

if (canAlert) {
    buttons.Alert = function() { alert('Hello'); }
}

$(".selector" ).dialog( "option", "buttons", buttons );

因此,您只創建一次對話框。 當然,按鈕需要兩個不同的名稱,否則第二個將覆蓋第一個。 但是,然后,沒有幾個帶有相同文本的按鈕,那就是很好的GUI設計。 ;)

使用按鈕數組選項創建兩個按鈕:

if ( canClose && canAlert )
    $( ".selector" ).dialog( "option", "buttons", [
        {
            text: "Ok",
            click: function() { $(this).dialog("close"); }
        },
        {
            text: "Ok",
            click: function() { alert('Hello'); }
        }
    ] );

我設法通過預先創建一個數組,然后將其分配給模式按鈕屬性來實現我的目標:

var buttons = new Array();

if ( occurance.canEdit ){
    buttons[buttons.length] = { text: "Edit", click: function(){ editOccurance(data[0],data[1]); } };
}

if ( occurance.canDelete ){
    buttons[buttons.length] = { text: "Delete", click: function(){ deleteOccurance(data[0],data[1]); } };
}

$( "#dialogOccurance" ).dialog( "option", "buttons", buttons );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM