0
var modify = document.queryAll("#tab");

  for(var i=0; i<modify.length; i++)
  {
    modify[i].on.click.add((Event e) => show_content(i));
  }
// code for hide_content()

我有两个函数 show_content() 和 hide_content(),它们在 div 上运行,我无法检测到第二次点击 div 以触发 hide_content()。我试过用信号量 - 没有运气

<div id="tab"> </div>
<div id="content"> </div>

<div id="tab"> </div>
<div id="content"> </div>
4

1 回答 1

1

queryAll用于非唯一元素。使用queryAll带有 ID 的唯一元素tab没有任何意义。您应该使用query('#tab')仅获得单个的位置DivElement作为其返回值。

但是我不确定,我理解你的问题,但如果你需要一个切换按钮,你可能正在寻找这样的东西:

DivElement uniqeDiv;

void toggle() {
 if(uniqeDiv.hidden) {
   // uniqeDiv.hidden = false;
   show();
 } else {
   // uniqeDiv.hidden = true;
   hide(); 
 }
}

void main() { 
  uniqeDiv = query('#tab');
  uniqeDiv.on.click.add((Event e) => toggle());
}
于 2012-07-27T22:28:10.267 回答