2013-01-18 143 views
1

我需要能够获取在jQuery对话框上单击的按钮的上下文。从按钮获取数据点击AutoGenerated按钮 - 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 
    }); 
} 

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

回答

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 
    }); 
} 
0

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

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