我需要能够获得在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
});
}
我不确定我需要使用哪个选择器来获取在对话框中单击的按钮的值。例如,如果你有一个名为&#34;取消&#34;的按钮,当我点击&#34;取消&#34;我需要获取该文本并对所述文本执行操作。 (将其传递回主屏幕)
答案 0 :(得分:0)
在这种情况下,我使用回调函数
按钮:[
{
标签:“关闭”,
回调:function(){
App.ModalDialog.close();
} //回调
}
]
答案 1 :(得分: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
});
}