在JQuery中显示/隐藏打印按钮?

时间:2016-11-16 19:08:51

标签: javascript jquery jquery-ui-dialog

我想知道有没有办法根据函数中传递的参数显示print按钮。这是我创建对话框的代码:

alertInfo: function (message, title, height, width, print) {
    $("<div></div>").dialog( {
        buttons: { 
            "Ok": function () { 
                $(this).dialog("close"); 
            },
            //show/hide button if argument 'print' equals to 'Yes'
            "Print": function() { 
                $(this).dialog().printArea(); 
            }, 
        },
        close: function (event, ui) { $(this).remove(); },
            resizable: false,
            title: title,
            modal: true,
            width: height,
            height: width,
            overflow:'auto',
            position: {
                 my: "center",
                 at: "center",
                 of: window
            }
    }).html(message);
}

这是我在alerInfo()函数中传递参数的代码:

$.alertInfo(infoTable,'User Info',800,600,'Yes');

我仍然没有得到这个工作,如果我试图把if语句放在打印按钮错误发生。如果有人可以提供帮助,请告诉我。

2 个答案:

答案 0 :(得分:1)

alertInfo: function(message, title, height, width, print) {
    var buttons = {
        "Ok": function() {
            $(this).dialog("close");
        }
    };
    if (print) buttons.print = function() {
        $(this).dialog().printArea();
    };
    $("<div></div>").dialog({
        buttons: buttons,
        close: function(event, ui) {
            $(this).remove();
        },
        resizable: false,
        title: title,
        modal: true,
        width: height,
        height: width,
        overflow: 'auto',
        position: {
            my: "center",
            at: "center",
            of: window
        }
    }).html(message);
}

这假设print参数是布尔值

$.alertInfo(infoTable,'User Info',800,600, true); // to show print button

$.alertInfo(infoTable,'User Info',800,600, false); // to not show print button

答案 1 :(得分:1)

您有效地将对象传递给y.Sheets("DTR").Cells.Delete x.Sheets(1).Range("A1").CurrentRegion.Copy y.Sheets("DTR").Paste y.Sheets("DTR").[a1] 属性:

buttons

所以你可以做的是根据你的条件动态创建那个对象,然后将动态创建的对象设置为属性。它可能看起来像这样:

{ 
    "Ok": function () { 
        $(this).dialog("close"); 
    },
    "Print": function() { 
        $(this).dialog().printArea(); 
    }
}