您的位置:首页 > 其它

Nitrogen 学习过程实录(13)

2009-02-18 07:29 204 查看
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)")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: