gpt4 book ai didi

javascript - jquery:调用一个函数

转载 作者:行者123 更新时间:2023-11-30 09:03:27 25 4
gpt4 key购买 nike

好的,我正在使用一些 jquery 创建动态弹出窗口。但是,定期响应将是我需要调用的函数的名称而不是实际数据,我正在尝试弄清楚如何执行此操作..

success: function(response) {
var obj = $.parseJSON(response);
if (obj.response == 'false') {
$('#popuperrDisplay').html(obj.msg);
$('#popuperrors').show();
} else {
if (obj.response == 'redirect') {
window.location.href = obj.msg;
} else if (obj.response == 'function') {
call obj
} else {
$(this).dialog('close');
}
}
}

这是我的 jquery 的当前部分。我需要弄清楚如何通过 json_encode 发送 JS 函数的名称并让 JS 实际调​​用该函数

最佳答案

如果该函数是全局定义的(在 window 对象上),您可以像这样简单地调用它:

if (obj.response === 'function' &&            // 1
typeof window[obj.msg] !== 'undefined') { // 2

window[obj.msg](); // 3
// or...
window[obj.msg].apply(null, obj.args); // 4
}
  1. 检查响应的类型是否为函数。
  2. 检查窗口对象上是否定义了具有给定名称的函数。
  3. 调用该函数。
  4. 调用该函数并为其提供参数数组。

编辑:(window[] 语法)

为了进一步阐明,window['showPopup'] 访问了 window 对象的 showPopup 成员。这与执行 window.showPopup 相同。只有 [] 语法具有接收 string 而不是实际代码的优势。

window['showPopup'] 将返回一个对象(如果已定义);让它成为我们特定示例的函数。

然后我们使用 () 运算符调用该函数对象,如下所示:window['showPopup']()。同样,这与执行此操作相同:window.showPopup()

编辑 2:(带参数调用)

如果必须使用参数数组调用函数,我们可以使用 apply .调用该函数将如下所示:

window['showPopup'].apply(null, arrayOfArgs);

其中 arrayOfArgs 是一个包含参数的数组。

关于javascript - jquery:调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com