我在对话框中添加了一个按钮。单击后,它将从对话框中获取结果并将其显示在主页上。可能有许多元素需要完成此操作,因此我试图制作一个对所有元素都适用的功能。但是为了做到这一点,我需要将名称传递给该函数,并且我不知道如何在不使用全局变量的情况下做到这一点。
例如,以下代码显示了正在调用的对话框。 “哪个”参数可以是任意数量的东西。在GetResults函数中,无论使用哪个参数,都将抓取结果。该代码按原样工作正常,但我尝试不使用全局变量。这可能吗?
<script>
var gwhich = '';
function ShowTheDialog(which) {
var dWidth = 200;
var dHeight = 350;
var name = '';
var thisurl = '';
switch (which) {
//set vars here
}
gwhich = which;
$.ajax({
url:thisurl,
success: function(data) {
$("#show-dialog").html(data).dialog({modal:true}).dialog({options:
open,
title:name,
width:dWidth,
height:dHeight,
buttons: {
"Save": GetResults,
"Cancel": function() {
text:'Cancel',
$(this).dialog("close");
}
},
});
}
});
}
function GetResults(){
which = gwhich;
var selectedItem = $("#retval-selected").text();
var apply_to = $("#retval-apply-to").text();
$("#show-selected-"+which).val(selectedItem);
$("#show-apply-to-"+which).val(apply_to);
$("#show-dialog").dialog( "close" );
}
</script>
答案 0 :(得分:1)
您可以将which参数传递给GetResults();
buttons: {
"Save": function() {
GetResults(which);
},
"Cancel": function() {
text:'Cancel',
$(this).dialog("close");
}
},
function GetResults(which){
var selectedItem = $("#retval-selected").text();
var apply_to = $("#retval-apply-to").text();
$("#show-selected-"+which).val(selectedItem);
$("#show-apply-to-"+which).val(apply_to);
$("#show-dialog").dialog( "close" );
}