在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(),但它显示该方法不存在。
发布于 2010-12-22 23:05:03
你能给我们展示一下调用myMethod_2的代码吗?如果你像这样调用它: document.getElement(...).myMethod_2(),但如果你有像someElement.addEventHandler("click",myxbl.myMethod_2,...)这样的东西,那就不能工作了,因为事件目标将是这样的。
这对于在该上下文中确定这是什么非常重要
编辑:(汤姆的回复)
现在,我想我明白了..。这正是问题所在..我从另一个文档的按键监听器调用它,而"this“不是我所想的..
发布于 2011-01-11 05:08:11
在事件侦听器的特定情况下,还有另一种解决问题的方法,即将元素本身作为侦听器进行传递。当然,您只有一个handleEvent方法,所以如果您在许多不同的事件目标上侦听许多不同的事件,那么这就没有那么有用了。
<implementation implements="nsIDOMEventListener">
<method name="handleEvent">
<parameter name="aEvent"/>
<body>
<![CDATA[
// do stuff
]]>
</body>
</method>https://stackoverflow.com/questions/4499500
复制相似问题