当前位置: 首页 > 工具软件 > nitrogen > 使用案例 >

Nitrogen 学习过程实录(13)

沈树
2023-12-01

 

8、规定元件的行为(actions)

在Elang中,术语“action”含义广泛。元件属性actions可以赋予的任何值,都是action。在网页上,action决定元件的表现。你可以指定各元件的行为,并且,有的行为可以嵌套指定。

Nitrogen在编译大多数行为时,简单地将Javascript命令赋予元件。这些Javascript命令在网页载入后,可能立即执行,改变元件的状态,或者监听特定事件,如鼠标点击、光标位置等等。

(1)、如何指定行为

行为指定的方式有2种,一是直接嵌入,二是调用函数wf:wire。第二种方式需要确定元件的名字。除此之外,两种方式的效果相同。

(2)、直接嵌入的行为

下面的代码以脚本语句Effect.Highlight,生成一级大字标题的HTML内容。例如:

#h1 { text="A Heading", actions=#effect_highlight{} } 

你可以用列表指定多个行为:

#h1 { text="A Heading", actions=[

    #effect_highlight{},

    #effect_appear{}

]}

(3)、通过函数wf:wire(...)指定行为

#h1 { id=headline, text="A Heading" }

...

wf:wire(headline, #effect_highlight{})

你也可以用列表指定多个行为:

#h1 { id=headline, text="A Heading" }

...

wf:wire(headline, [

    #effect_highlight{},

    #effect_appear{}

])

(4)、直接调用Javascript

Nitrogen允许你在元件上直接调用Javascript,并且可在调用过程中引用元件。

你可以用obj('me')得到当前元件,obj('me.child1.child2')得到当前元件的子元件,或者用obj('element1.element2') 引用网页上的其他元件。

下面是个示例,以提示窗口显示当前元件的id:

#h1 { id=headline, text="A Heading", actions="alert(obj('me').id)"} 

或者:

#h1 { id=headline, text="A Heading" }

...

wf:wire(headline, "alert(obj('me').id)")

 

 

 

 类似资料: