本节,我们通过节点给“按钮 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