mmenujs:在面板打开后采取行动

问题描述

我想在给定面板打开后采取行动,如下所示:

sidebar.API.openPanel(document.querySelector("#panel"))
  .then(function)

documentation 提供了绑定到操作的方法

sidebar.API.bind("openPanel:finish",function(panel){
  function()
}

但后来它永久完成了。我只想做一次,而且没有“解除绑定”的方法。有没有办法做到这一点?

解决方法

您可以在 .bind 函数之外使用范围内的变量,在函数内部将其设置为 true 并添加仅当所述变量为 false 时才执行代码的检查

let isOpened = false
sidebar.API.bind("openPanel:finish",function(panel){
  if(isOpened === false){ isOpened = true }
  else return

  function(){ // Here is your code that will execute only once }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...