在单击</li>时将HTML <li>标记的id传递给VBScript子例程

时间:2013-04-20 23:41:36

标签: html vbscript hta

我有大量的VBScripts我打算给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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>