以ZK处理MouseScroll

问题描述 投票:0回答:2

我想处理zk中的MOUSE事件滚动,但找不到它。我可以使用JavaScript进行操作,但是我想将通知发送到服务器端,以便服务器可以将数据发送回客户端。有什么办法可以在Controller中获取该事件。或做

comp.addEventListener(EVENTNAME,mylistener);

我想知道上面的EVENTNAME的值是什么。

javascript java dom-events zk mousewheel
2个回答
0
投票

3
投票
这是我在分页网格中捕获鼠标滚动以通过鼠标滚轮推进页面的工作;发送通知到服务器端的部分是以下行:this.getPaginal()。fire('onPaging',nextPage)

<zk> <zscript>Object[] o = new String[150]; </zscript> <hlayout id="layout" vflex="1" hflex="1"> <grid id="grid1" width="300px" autopaging="true" height="300px" mold="paging" vflex="true"> <rows> <row forEach="${o }"> <label value="item ${forEachStatus.index}"/> </row> </rows> </grid> </hlayout> <zscript><![CDATA[ { grid1.setWidgetOverride("bind_", "function(){\r\n"+ "this.$supers('bind_', arguments);\r\n"+ "var node = this.$n();\r\n"+ "if (node.addEventListener)\r\n"+ " node.addEventListener('DOMMouseScroll', this.proxy(this.onMouseWheel), false);\r\n"+ "node.onmousewheel = this.proxy(this.onMouseWheel);\r\n"+ "}"); grid1.setWidgetOverride("onMouseWheel", "function(event){\r\n" + " var delta = 0;\r\n" + " if (!event) /* For IE. */ \r\n" + " event = window.event;\r\n" + " if (event.wheelDelta) { /* IE/Opera. */\r\n" + " delta = event.wheelDelta / 120;\r\n" + " if (window.opera) \r\n" + " delta = -delta;\r\n" + " }\r\n" + " else \r\n" + " if (event.detail) {\r\n" + " delta = -event.detail / 3;\r\n" + " }\r\n" + " if (delta) {\r\n" + " console.log('delta = ' + delta); " + " var currPage = this.getPaginal().getActivePage(); \r\n" + " var nextPage = Math.min (this.getPageCount() - 1, Math.max (0, currPage - delta)); \r\n" + " this.getPaginal().fire('onPaging', nextPage);\r\n" + " }\r\n" + " if (event.preventDefault) \r\n" + " event.preventDefault();\r\n" + " event.returnValue = false;\r\n" + "} "); } ]]></zscript>

© www.soinside.com 2019 - 2024. All rights reserved.