Javascript 是否可以从另一个元素访问元素函数?聚合物1.0
假设我有一个Javascript 是否可以从另一个元素访问元素函数?聚合物1.0,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,假设我有一个元素A //imports <dom-module id="element-A"> <style></style> <template> <content> //some content </content> </template> <script> // element registration Polymer({ i
元素A
//imports
<dom-module id="element-A">
<style></style>
<template>
<content>
//some content
</content>
</template>
<script>
// element registration
Polymer({
is: "element-A",
aCustomFunction: function(e){
//just some code
}
});
</script>
//导入
//一些内容
//元素注册
聚合物({
是:“元素A”,
ACUSTOM功能:功能(e){
//只是一些代码
}
});
如果我想从另一个不同的元素访问函数
aCustomFunction
,该怎么办?例如,您可以按常规方式进行访问
如果我有这个元素
<element-A id="someid"></element-A>
或
在某些情况下,getElementById不起作用,您可以使用适当的polymer api来查找此元素。
你不需要做一些特殊的事情,只需要找到元素并像对象一样使用它。如果你想在一个元素中使用另一个元素的函数,那么你必须使用。
这是一种根据聚合物规则扩展组件的简单方法。听起来像是你把什么东西弄混了。我看不出行为与从其他组件调用方法有什么关系。使用行为的方法允许在不同的组件中使用相同的功能。如果任务只是获取单个组件的功能,而不是更改它,那么它的方法是最简单的。是的,没错,但我认为这与问题的内容不同。行为允许为不同的组件重用相同的方法,因此您不必在每个组件中单独实现它们,但如果您想从组件外部调用此类方法,则需要按照@Alon解释的方式进行。我同意,这取决于用途。这解释了很多,让我来试试运气,把问题扩展到评论上。。。如果你只有函数名,而元素(你想访问它的函数)是匿名的呢?我不明白你能举个例子吗?元素B想访问元素A的函数,但它只知道函数名。没别的了。它甚至不在乎元素A是否存在。这就像从全局范围访问函数一样。(只是这一次,它是在元素A中定义的)我不知道是否可能,您必须知道元素的名称才能激活该函数。如果您想在更多对象中使用相同的函数,比如元素之间的继承,您可以看到Dmitry的答案
var element = document.getElementById("someid");
element.aCustomFunction('someE');
this.$.someid.aCustomFunction('someE');