所以我在这里找到了一个很棒的解决方案来解决需要在 jQuery 中使用全局变量的问题。我到处说命名空间,最初我打算使用全局变量。
但是,我无法通过简单的单击功能上的参数发送我的命名空间变量。
我想这样做是因为我有这些变量需要保存并用于创建模态窗口以及让应用程序知道哪些动态创建的按钮控制着哪些模态。
所以下面是我的命名空间对象的示例,我首先在其中创建变量 My jQuery 命名空间对象:
$.reg = {
masterRole : " ",
role_ID : " ",
row_Name : " ",
ary_Check_Role : []
};
$(document).ready(function () {
...
当您浏览应用程序时,这些名称空间变量的值会在您单击此按钮时设置(从 HTML 中获取数据)在我的 roleBtnClicked 函数上设置变量
function roleBtnClicked(event){
$.reg.masterRole = $(this).html(); /* Get role name: Actor */
$.reg.role_ID = $(this).attr('role'); /* Get role-1 */
$.reg.rowName = $(this).attr('row'); /* Get row-role-1 */
$.reg.blueBtn = $(this).attr('blue'); /* Get blue-btn-1 */
现在弹出一个模式窗口,在单击一些复选框并将数据推送到数组后,当您单击完成按钮(如下)时,所有变量都需要再次保存到命名空间 vars 中。
我的完成按钮单击功能,我试图通过参数变量传递我的命名空间变量
$(".doneButton").click(
{
param1: $.reg.masterRole,
param2: $.reg.role_ID,
param3: $.reg.rowName,
param4: $.reg.ary_Check_Role
},
doneBtnClicked);
function doneBtnClicked(event){
alert('$.reg.roleName = '+$.reg.roleName);
alert('event.data.param1 = '+event.data.param1);
masterRole= event.data.param1;
role_ID = event.data.param2;
rowName = event.data.param3;
ary_Check_Role = event.data.param4;
请注意上面点击功能中的 2 个警报,第一个将显示正确的值,但第二个不显示任何内容。还有一个问题是让阵列通过。
所以问题:我应该这样做吗?如何正确地将 Array 传递给 jQuery 命名空间,然后将其传递给 click 函数参数?