0

从 XBL 方法中,当我需要调用另一个方法时,我喜欢:

        <method name="myMethod_1">
            <body>
                <![CDATA[
                    // do staff
                ]]>
            </body>
        </method>


        <method name="myMethod_2">
            <body>
                <![CDATA[
                    document.getElementById("thisElementID").myMethod_1();
                ]]>
            </body>
        </method>

我想知道是否有一种方法可以调用本地方法而不需要元素 ID?我试过this.myMethod_1()了,但它说该方法不存在。

4

2 回答 2

1

在事件侦听器的特定情况下,还有另一种解决问题的方法,那就是将元素本身作为侦听器传递。当然,您只能获得一个 handleEvent 方法,因此如果您要在许多不同的事件目标上侦听许多不同的事件,则此方法的用处不大。

<implementation implements="nsIDOMEventListener">
  <method name="handleEvent">
    <parameter name="aEvent"/>
    <body>
      <![CDATA[
        // do stuff
      ]]>
    </body>
  </method>
于 2011-01-10T21:08:11.230 回答
0

你能告诉我们调用 myMethod_2 的代码吗?如果你这样称呼它: document.getElement(...).myMethod_2() 很好,但如果你有类似 someElement.addEventHandler("click", myxbl.myMethod_2,...); 这行不通,因为事件目标将是this

对于确定在该上下文中是什么很重要

编辑:(汤姆的回复)

哦,我想我明白了..这正是问题所在..我从另一个文档的按键监听器中调用它,而“this”不是我想的那样..

于 2010-12-22T15:05:03.320 回答