如何创建jquery UI对话框动态按钮并映射到函数?

时间:2013-09-19 05:34:38

标签: jquery

我从下面的链接中获取了这段代码

How do I close a dialog using jQuery?

$(function () {
    $("a:contains('sometext')").click(function() {
        var NewDialog = $('<div id="MenuDialog">\
            <p>This is your dialog content, which can be multiline and dynamic.</p>\
        </div>');
        NewDialog.dialog({
            modal: true,
            title: "title",
            show: 'clip',
            hide: 'clip',
            buttons: [
                {text: "Submit", click: function() {doSomething()}}
            ]
        });
        return false;
    });
});

此处代替值 doSomething 我需要使用变量。 例如: - 如果我有一个变量temp = confirm,那么应该使用值 confirm 。 所以当我点击按钮时,应该调用功能确认。

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:1)

如果您的确认变量是一个功能,您只需用确认替换点击功能:

Edit:

 $(function () {
    var confirm1 = function(){
        alert("confirm function 1");
    }
    var confirm2 = function(){
        alert("confirm function 2");
    }

    var temp = confirm1;


    $("a:contains('sometext')").click(function() {
        var NewDialog = $('<div id="MenuDialog">\
            <p>This is your dialog content, which can be multiline and dynamic.</p>\
        </div>');
        NewDialog.dialog({
            modal: true,
            title: "title",
            show: 'clip',
            hide: 'clip',
            buttons: [
                {text: "Submit", click: function(){temp();}}
            ]
        });
        return false;
    });

    //  Uncomment this line if you want to change temp function
    //  temp = confirm2;

});

小提琴: http://jsfiddle.net/nilgundag/SgFJk/4/

答案 1 :(得分:0)

我修改了下面的代码,它可以工作..

  

按钮:[                   {text:“提交”,点击:function(){eval(temp)()}}               ]