1. 简介
为了在客户端执行应用程序特有的一些代码,ZK5 版本引入了Client Namespace 的概念,使用Client Namespace ,开发人员能够监听任何客户端的事件,重写ZK的方法并且可以执行任何自定义的客户端代码。
2. 定义 ZK Client Namespace
为了在客户端写代码,你必须定义一个Namespace,例如:onClick事件被客户端的JavaScript处理
<button label="client" xmlns:w="http://www.zkoss.org/2005/zk/client" w:onClick="alert('clicked')"/>
3、怎样在JavaScript里引用ZK组件
当客户端的事件被调用,你可以用this来引用组件,例如:
<window xmlns:w="http://www.zkoss.org/2005/zk/client"> <label value="change me by click" w:onClick="this.setValue('clicked');"/> </window>
可以用function $f 获取其他的组件,跟getFellow()类似,此外,你能使用jQuery选择一个组件的DOM元素。比如jq(@window)将会选择所有的window组件 DOM元素,并且jq("$win1") 将获得ID是win1的组件。
<window xmlns:w="http://www.zkoss.org/2005/zk/client"> <vbox> <label id="labelone" value="click to change" w:onClick="this.setValue('changed by click label');" /> <button label="button" w:onClick="this.$f('labelone').setValue('changed by button');" /> <html><![CDATA[ <a href="javascript:;" οnclick="zk.Widget.$(jq('$labelone')[0]).setValue('changed with jq');">not widget</a> ]]></html> </vbox> </window>