0

我有大量的 VBScript,我打算提供一个 GUI 前端(使用 HTA)。在 HTA 窗口的顶部,我创建了一个下拉菜单栏,如下所示(没有包含 CSS 代码,因为我认为它不会添加任何相关信息)。

我已经尝试了一段时间,但无法弄清楚如何将单击的 li 的 id 值传递给 MenuClicked 子例程。

我以前使用 HTML 的经验是使用它来创建静态文档,所以我可能完全搞错了。如果是这种情况,请告诉我。

<script type="text/VBScript">
  Sub MenuClicked()
    Select Case WhatDoIPutHere
      Case "#Option1A" : Sub_Option1A
      Case "#Option1B" : Sub_Option1B
      Case "#Option2A" : Sub_Option2A
      Case "#Option2B" : Sub_Option2B
      Case "#Option3"  : Sub_Option3
    End Select
  End Sub
</script>

<div>
  <ul id="nav" class="drop" onClick="MenuClicked()">
    <li><a>Option1A</a>
      <ul>
        <li id="#Option1A"><a>Option 1A</a></li>
        <li id="#Option1B"><a>Option 1B</a></li>
      </ul>
    </li>
    <li><a>Option 2</a>
      <ul>
        <li id="#Option2A"><a>Option 2A</a></li>
        <li id="#Option2B"><a>Option 2B</a></li>
      </ul>
    </li>
    <li id="#Option3"><a>Option 3</a></li>
  </ul>
</div>
4

2 回答 2

1

由于 HTA 由 Internet Explorer 引擎运行,因此您应该使用该srcElement属性

<script type="text/VBScript">
  Sub MenuClicked()
    Dim target

    ' .parentNode because the <a> element is really what's being clicked,
    ' but we want the ID of the <li> element
    Set target = window.event.srcElement.parentNode

    Select Case target.id
      Case "#Option1A" : Sub_Option1A
      Case "#Option1B" : Sub_Option1B
      Case "#Option2A" : Sub_Option2A
      Case "#Option2B" : Sub_Option2B
      Case "#Option3"  : Sub_Option3
    End Select
  End Sub
</script>

<div>
  <ul id="nav" class="drop" onClick="MenuClicked()">
    <li><a>Option1A</a>
      <ul>
        <li id="#Option1A"><a>Option 1A</a></li>
        <li id="#Option1B"><a>Option 1B</a></li>
      </ul>
    </li>
    <li><a>Option 2</a>
      <ul>
        <li id="#Option2A"><a>Option 2A</a></li>
        <li id="#Option2B"><a>Option 2B</a></li>
      </ul>
    </li>
    <li id="#Option3"><a>Option 3</a></li>
  </ul>
</div>
于 2013-04-21T20:24:25.143 回答
0

这是我的做法:

<script type="text/VBScript">
  Sub MenuClicked(obj)
    Select Case obj.id
      Case "#Option1A" : Sub_Option1A
      Case "#Option1B" : Sub_Option1B
      Case "#Option2A" : Sub_Option2A
      Case "#Option2B" : Sub_Option2B
      Case "#Option3"  : Sub_Option3
    End Select
  End Sub
</script>

<div>
  <ul id="nav" class="drop">
    <li><a>Option1A</a>
      <ul>
        <li id="#Option1A" onClick="MenuClicked Me"><a>Option 1A</a></li>
        <li id="#Option1B" onClick="MenuClicked Me"><a>Option 1B</a></li>
      </ul>
    </li>
    <li><a>Option 2</a>
      <ul>
        <li id="#Option2A" onClick="MenuClicked Me"><a>Option 2A</a></li>
        <li id="#Option2B" onClick="MenuClicked Me"><a>Option 2B</a></li>
      </ul>
    </li>
    <li id="#Option3" onClick="MenuClicked Me"><a>Option 3</a></li>
  </ul>
</div>
于 2013-04-21T00:25:17.883 回答