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 メソッドは 1 つしか取得できないため、多数の異なるイベント ターゲットで多数の異なるイベントをリッスンしている場合、これはあまり役に立ちません。

<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になるため、これは機能しません。

これは、そのコンテキストでこれが何であるかを判断するために重要です

編集:(トムの返事)

うわー、私はそれを得たと思います..それはまさにこれが問題です..別のドキュメントのキープレスリスナーから呼び出していますが、「これ」は私が思うものではありませんでした..

于 2010-12-22T15:05:03.320 に答える