You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过名称查找后触发JavaScript函数?

解决通过函数名查找并触发函数的问题

你当前的代码逻辑有误:this.ui.find('functionName') 是用jQuery在DOM结构里查找匹配选择器的元素,不是查找JavaScript函数,所以没法实现你要的功能。下面分场景给出正确实现方式:

场景1:函数是全局函数(挂在window对象上)

如果目标函数是全局的,直接通过window[函数名]访问,判断类型后调用:

const targetFuncName = 'functionName';
// 先判断是否存在且是函数类型
if (typeof window[targetFuncName] === 'function') {
    // 调用函数
    window[targetFuncName]();
}

场景2:函数是某个对象的方法(比如this.ui上的方法)

如果函数是this.ui对象的方法,用对象属性访问符[]获取:

const targetFuncName = 'functionName';
if (typeof this.ui[targetFuncName] === 'function') {
    // 调用时注意上下文,如果函数内部用到this,需要绑定对象上下文
    this.ui[targetFuncName].call(this.ui);
    // 或者直接调用(如果函数不依赖this上下文)
    // this.ui[targetFuncName]();
}

场景3:你实际想触发DOM元素的点击事件(混淆了函数名和元素选择器)

如果你的真实需求是找到某个绑定了点击事件的DOM元素(比如元素id为functionName),那需要修正选择器,并且判断jQuery对象是否存在:

const $targetElement = this.ui.find('#functionName');
// jQuery对象即使找不到元素也会返回空对象,所以要判断长度
if ($targetElement.length > 0) {
    $targetElement.trigger('click');
}

内容的提问来源于stack exchange,提问作者Dev_Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 02:12:08