1

我需要能够获取在 jQuery 对话框上单击的按钮的上下文。

我有一个函数可以自动创建一个带有我传递的按钮名称数组的对话框。函数看起来像这样。

function setAutoDialog(buttonNameArray){
    var testArray = buttonNameArray;
    var passDataBack = function () {
        var test = $('.getButtonClicked').text(); // NEED THE TEXT FROM THE BUTTON THAT WAS CLICKED HERE
        $(this).dialog("close");
    }
    var myButtons = {};

    for(var i=0; i<testArray.length; i++){
        myButtons[testArray[i]] = passDataBack;
    }

    $('#autoDialog').dialog({
        autoOpen: false,
        dialogClass: 'autoDialog',
        width: 'auto',
        buttons : myButtons
    });
}

我不确定我需要使用什么选择器来获取在对话框上单击的按钮的值。例如,如果您有一个名为“取消”的按钮,当我单击“取消”时,我需要获取该文本并对所述文本执行操作。(将其传递回主屏幕)

4

2 回答 2

0

在这种情况下,我使用回调函数

按钮:[{标签:“关闭”,回调:函数(){App.ModalDialog.close();} // 回调
} ]

于 2013-01-18T15:45:10.297 回答
0

弄清楚了。

在您的处理程序上,将 click 事件传递给函数。像这样。

$('#button1').live('click', function () {    
    setAutoDialog(buttonArray, $(this));
    $( "#autoDialog" ).dialog("open");
});

然后在您的函数中引用该事件并从目标中获取 textContent。

function setAutoDialog(buttonNameArray, clickEvent){
    var testArray = buttonNameArray;
    var passDataBack = function (clickEvent) {
        var t2 = clickEvent.target.textContent;

        $(this).dialog("close");
    }
    var myButtons = {};

    for(var i=0; i<testArray.length; i++){
        myButtons[testArray[i]] = passDataBack;
    }

    $('#autoDialog').dialog({
        autoOpen: false,
        dialogClass: 'autoDialog',
        width: 'auto',
        buttons : myButtons
    });
}
于 2013-01-18T15:54:28.680 回答