2012-02-06 9 views
0

マウスのスクロールのイベントをzkで処理したいのですが、それを見つけることができません。私はJava Scriptを使用してそれを行うことができますが、サーバがクライアントにデータを送り返すことができるように、通知をサーバ側に送信したいと思います。コントローラーでそのイベントを取得する方法はありますか?またはdoMouseScrollをZKで扱います

comp.addEventListener(EVENTNAME,mylistener); 

私は上記のEVENTNAMEの値である必要があることを知りたいと思います。

おかげで、 アマン

答えて

0

org.zkoss.zk.ui.event.Events.ON_SCROLLまたはorg.zkoss.zk.ui.event.Events.ON_SCROLLINGを試してみてください。

3

限り、ON_SCROLLイベントは、項目にス​​クロールバーがある場合にのみ機能します。マウスホイールイベントをキャプチャしたい場合は、javascriptでこれを行い、独自のイベントを作成する必要があります。

マウスホイールでページを進めるために、ページンググリッドでマウススクロールをキャプチャするために私がやったことは次のとおりです。サーバ側に通知を送信する部分は次の行です:。this.getPaginal()火災( '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> 

+1

ありがとうございました。 これは受け入れられた答えでなければなりません。 – TheBakker

+0

Btwはそれに関する文書をどこに見つけたかに興味があります。 – TheBakker

+0

こんにちは@TheBakker、それを見てからしばらくしていますが、次のgithubプロジェクトにはいくつかの手がかりがあります:https://github.com/jquery/jquery-mousewheel – Leo

関連する問題