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

触发Bestätigung_ÖFFNET等事件后SVG StateSignal13仍显示,visibility属性不生效如何解决

问题根因

  • 变量未实时读取:你将两个状态变量的读取逻辑定义在函数外部,仅会在脚本初始化时执行一次,后续事件触发调用ZustandLE1时,读取的始终是旧值,不会同步事件触发后的最新状态。
  • 后序逻辑覆盖前序设置:两个独立的if-else块顺序执行,后运行的LE1BS判断分支会直接覆盖前者设置的visibility属性,最终元素可见性仅和LE1BS的状态有关,完全不符合预期逻辑。
  • 额外排查点:确认getVariable返回的状态值确实为首字母大写的字符串"True",如果返回的是布尔值true或者小写字符串"true",全等判断会直接失效,也会导致逻辑走不到预期分支。

修复代码

function ZustandLE1(){
    // 每次函数执行都读取最新的变量值
    var LE1BO = LeitstandSCHENKERRadeburg.getVariable("Siemens LOGO 8 NR1.Bestätigung_ÖFFNET");
    var LE1BS = LeitstandSCHENKERRadeburg.getVariable("Siemens LOGO 8 NR1.Bestätigung_SCHLIESSET");
    
    // 合并逻辑:任意一个状态为True就显示元素,否则隐藏
    if (LE1BO == "True" || LE1BS == "True") {
        LeitstandSCHENKERRadeburg.setProperty("LeitstandSCHENKERRadeburg.StateSignal13.visibility", "visible");
        // 保留原有的ZustandLE1变量赋值逻辑
        if(LE1BO == "True"){
            LeitstandSCHENKERRadeburg.setVariable("Intern.ZustandLE1","True");
        }
        if(LE1BS == "True"){
            LeitstandSCHENKERRadeburg.setVariable("Intern.ZustandLE1","False");
        }
    } else {
        LeitstandSCHENKERRadeburg.setProperty("LeitstandSCHENKERRadeburg.StateSignal13.visibility", "hidden");
    }
}

如果确认状态返回的是布尔值,把判断条件里的"True"改成true即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:57:06