本节,我们通过节点给“按钮 close”节点单独加载.onButtonClick 事件,同时需要把对象事件通过.attachEventHandler() 发送给主程序进行监听。
代码示例:
import win.ui; import web.layout; //导入 layout import web.layout.behavior.windowCommand; import process; mainForm = win.form(text="aardio 工程";right=359;bottom=669;border="none") mainForm.add() wbLayout = web.layout( mainForm ) if( _STUDIO_INVOKED ){ //开启 layout 调试 import web.layout.debug; wbLayout.attachEventHandler( web.layout.debug ); } html = /** <!DOCTYPE html> <html> <head> <title>R 大技术站</title> <style type="text/css"> @set std-button{ :root{padding:0 8 0 8;line-height:24px;border:1px solid #ccc;cursor: pointer;transition: none;color:#fff;} :root:hover{background:#999;} :root:active{background:#999;} } button{background: #c1c1c1;width:120px;height:32px;margin-top:10px;margin-left:50%% - 60px;} #close_btn{background:#009688;} #open_btn{background:#FF5722;} button[name="name_btn"]{background:#1E9FFF;} #none_btn{background:#2F4056;} </style> </head> <body> <p><button id="close_btn">按钮 close</button></p> </body> </html> **/ wbLayout.html = html; var btn = wbLayout.$1("#close_btn") //查找 按钮 close 节点 btn.onButtonClick = function (ltTarget,ltOwner,reason,behaviorParams) { //给 按钮 close 节点加载事件 mainForm.close() } btn.attachEventHandler() //添加 按钮 close 节点事件监听 mainForm.show() return win.loopMessage();
|
通过这样的方式我们可以更换节点的事件处理方式:
var btn = wbLayout.$1("#close_btn") //查找 按钮 close 节点 btn.onMouseWheel = function( ltTarget,ltOwner,x,y,ltMouseParams ) { //当鼠标滚动 mainForm.close() } btn.onMouseLeave = function( ltTarget,ltOwner,x,y,ltMouseParams ) { //当鼠标离开 mainForm.close() } btn.onButtonClick = function( ltTarget,ltOwner,x,y,ltMouseParams ) { //当点击按钮 mainForm.close() } btn.attachEventHandler() //添加 按钮 close 节点事件监听
|
这样就可以实现给控件修改事件触发条件了!
当然这不是 htmlayout 推荐的做法,那么我们可以继续往下面慢慢学习吧!!!
原文地址:https://www.btbat.com/1141.html