2013-01-18 240 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() ; } //回調
} ]