目录
公共事件
事件名 | 说明 |
---|---|
onload | 页面被载入时调用 |
onclick | 鼠标被单击时调用 |
onfocus | 获得焦点时触发的事件 |
onchange | 失去焦点时,且控件值发生变化,一般是用在input上 |
ondestroy | 页面销毁的时候调用 |
onpause | 进入后台时被调用 |
onrestart | 页面重新启动的时候调用 |
onresume | 进入activity时被调用 |
onstart | 进入activity时调用,短时重新进入不调 |
onstop | 长时间进入后台进被调用 |
ontouch | 在触摸事件中,改变变量值,并重绘画面 |
onintercepttouch | 开启触摸事件后,结束使用,与ontouch配对使用 |
ondoubletap | 双击控件时触发的事件 |
onlongclick | 长按控件时触发的事件 |
onswipeup | 在控件上上滑时触发的事件 |
onswipedown | 在控件上下滑时触发的事件 |
onswipeleft | 在控件上左滑时触发的事件 |
onswiperight | 在控件上右滑时触发的事件 |
onkeydown | Window上新增onkeydown事件,监听回退键传参 |
参考实例
onclick事件
可以为支持点击事件的控件添加该事件,在点击该控件时触发。
用法
<input id="button1" value="按钮" onclick="btnclick()" type="button"/>
function btnclick(sender, args){
$alert("点击了按钮");
}
ondoubletap事件
可以为支持点击事件的控件添加该事件,在双击该控件时触发。
用法
<div id="panel0" ondoubletap="this.ondouble()"/>
function com$requirements$SignalController$ondouble(sender, args){
$alert("双击变蓝色");
$id("panel0").set("background", "#0080ff");
}
onswipeup事件
在该控件上上滑时触发的事件。
用法
<div id="panel0" ondoubletap="this.onswipeup()"/>
function com$requirements$SignalController$onswipeup(sender, args){
$alert("上滑变绿色");
$id("panel0").set("background", "#00ff40");
}
onswipedown事件
在该控件上下滑时触发。
用法
<div id="panel0" ondoubletap="this.onswipedown()"/>
function com$requirements$SignalController$onswipedown(sender, args){
$alert("下滑变紫色");
$id("panel0").set("background", "#8080ff");
}
onswipleft事件
在该控件上左滑时触发。
用法
<div id="panel0" ondoubletap="this.onswipleft()"/>
function com$requirements$SignalController$onswipleft(sender, args){
$alert("双击变黄色");
$id("panel0").set("background", "#ffff00");
}
onswipright事件
在该控件上右滑时触发。
用法
<div id="panel0" ondoubletap="this.onswipright()"/>
function com$requirements$SignalController$onswipright(sender, args){
$alert("右滑变黑色");
$id("panel0").set("background", "#000000");
}
onlongclick事件
可以为支持长按事件的控件添加该事件,在长按该控件时触发。
用法
<input id="button1" onlongclick="btnlongclick()" value="按钮" type="button"/>
function btnlongclick(){
$alert("长按按钮");
}
onload事件
可以为div、listview、flipper、picker等控件添加onload事件,在加载该控件时触发。
例如
<listView id="listviewdefine0" bindfield="persons" onuprefersh="uprefersh()" linedelshow="true" ondownrefersh="downrefersh()" onload="listviewdefine0_onload()" onItemClick="rowclick()" onitemdelete="itemdelete()">
<div id="panel1">
<div id="panel2">
<div id="panel3">
<image id="image0" bindfield="icon" scaletype="fitcenter" src="lss.png"/>
<label id="label1" bindfield="name">name</label>
</div>
<div id="panel4"/>
</div>
</div>
</listView>
var i = 0;
var len = 20;
function listviewdefine0_onload(sender, args) {
var json = {
persons : []
};
for ( i = 0,
len = 20; i < len; i++) {
var person = {};
person["id"] = "100" + i.toString();
person["name"] = "联系人" + i.toString();
person["icon"] = "lss.png";
person["select"] = "false";
json.persons.push(person);
}
$ctx.push(json);
}
onitemclick事件
可以为listview添加该事件,当点击列表的每一行时触发。
例如
<listView id="listviewdefine0" bindfield="persons" onuprefersh="uprefersh()" linedelshow="true" ondownrefersh="downrefersh()" onload="listviewdefine0_onload()" onItemClick="rowclick()" onitemdelete="itemdelete()">
<div id="panel1">
<div id="panel2">
<div id="panel3">
<image id="image0" bindfield="icon" scaletype="fitcenter" src="lss.png"/>
<label id="label1" bindfield="name">name</label>
</div>
<div id="panel4"/>
</div>
</div>
</listView>
function rowclick(sender, args) {
var data = $id("listviewdefine0").get("row");
data = $stringToJSON(data);
$alert("name:" + data.name);
}
onitemdelete事件
可以为listview添加该事件,当右滑弹出删除按钮点击删除时触发。
例如
<listView id="listviewdefine0" bindfield="persons" onuprefersh="uprefersh()" linedelshow="true" ondownrefersh="downrefersh()" onload="listviewdefine0_onload()" onItemClick="rowclick()" onitemdelete="itemdelete()">
<div id="panel1">
<div id="panel2">
<div id="panel3">
<image id="image0" bindfield="icon" scaletype="fitcenter" src="lss.png"/>
<label id="label1" bindfield="name">name</label>
</div>
<div id="panel4"/>
</div>
</div>
</listView>
function itemdelete(sender, args) {
var row = $id("listviewdefine0").get("row");
delteRow($stringToJSON(row));
}
function delteRow(row) {
var sourceR = $ctx.getJSONArray("persons");
for (var i = 0; i < sourceR.length; i++) {
var group = sourceR[i];
if (group.id == row.id) {
sourceR.splice(i, 1);
break;
}
}
var json = {};
json["persons"] = sourceR;
$ctx.push(json);
}
ondownrefersh事件
可以为listview添加该事件,当上拉列表刷新数据时触发。
例如
<listView id="listviewdefine0" bindfield="persons" onuprefersh="uprefersh()" linedelshow="true" ondownrefersh="downrefersh()" onload="listviewdefine0_onload()" onItemClick="rowclick()" onitemdelete="itemdelete()">
<div id="panel1">
<div id="panel2">
<div id="panel3">
<image id="image0" bindfield="icon" scaletype="fitcenter" src="lss.png"/>
<label id="label1" bindfield="name">name</label>
</div>
<div id="panel4"/>
</div>
</div>
</listView>
function downrefersh(sender, args) {
var json = {
persons : []
};
for ( len = (len + 20); i < len; i++) {
var person = {};
person["id"] = "100" + i.toString();
person["name"] = "联系人" + i.toString();
person["icon"] = "lss.png";
json.persons.push(person);
}
$ctx.push(json);
}
onuprefersh事件
可以为listview添加该事件,当下拉列表刷新数据时触发。
例如
<listView id="listviewdefine0" bindfield="persons" onuprefersh="uprefersh()" linedelshow="true" ondownrefersh="downrefersh()" onload="listviewdefine0_onload()" onItemClick="rowclick()" onitemdelete="itemdelete()">
<div id="panel1">
<div id="panel2">
<div id="panel3">
<image id="image0" bindfield="icon" scaletype="fitcenter" src="lss.png"/>
<label id="label1" bindfield="name">name</label>
</div>
<div id="panel4"/>
</div>
</div>
</listView>
function uprefersh(sender, args) {
if (i - 40 >= 0) {
var json = {
persons : []
};
for ( i = (i - 40),
len = (len - 20); i >= 0 && i < len; i++) {
var person = {};
person["id"] = "100" + i.toString();
person["name"] = "联系人" + i.toString();
person["icon"] = "lss.png";
person["select"] = "false";
json.persons.push(person);
}
$ctx.push(json);
}
}
onnextflipper事件
可以为viewflipper控件添加该事件,当滑到下一页的时候触发。
用法
<flipper id="flipperdefine0" onnextflipper="next()" onpreviousflipper="previous()" viewindex="0">
<div id="panel1" title="页面1">
<div id="panel4"/>
</div>
<div id="panel2" title="页面2">
<div id="panel5"/>
</div>
<div id="panel3" title="页面3">
<div id="panel6"/>
</div>
</flipper>
function next(sender, args){
//获取当前是flipper的第几页
var i = $id("flipperdefine0").get("viewindex");
}
onpreviousflipper事件
可以为viewflipper控件添加该事件,当滑到上一页的时候触发。
用法
<flipper id="flipperdefine0" onnextflipper="next()" onpreviousflipper="previous()" viewindex="0">
<div id="panel1" title="页面1">
<div id="panel4"/>
</div>
<div id="panel2" title="页面2">
<div id="panel5"/>
</div>
<div id="panel3" title="页面3">
<div id="panel6"/>
</div>
</flipper>
function previous(sender, args){
//获取当前是flipper的第几页
var i = $id("flipperdefine0").get("viewindex");
}
onintercepttouch、ontouch事件
可以为控件添加该事件,当按下并拖动控件时触发,可以拆分为DOWN、MOVE、UP、CANCEl四个动作。
用法
<div id="panel0" onintercepttouch="onintertouch()">
<label id="label1">任意拖动以下控件</label>
<div id="redpanel" ontouch="touch0()"/>
<div id="greenpanel" ontouch="touch1()"/>
<div id="bluepanel" ontouch="touch2()"/>
</div>
var w = -1;
var ctl = "";
var DOWN = 0;
var UP = 1;
var MOVE = 2;
var CANCEL = 3;
var isSelected = false;
function onintertouch(sender, event) {
if (isSelected == false || ctl == "") {
return;
}
var x = event["x"];
var y = event["y"];
var what = event["what"];
if (what == DOWN) {
$id(ctl).set("opacity", "0.5");
}
if (what == MOVE) {
if (w == -1) {
w = $id(ctl).get("width") / 2;
}
$id(ctl).set("left", x - w + "px");
$id(ctl).set("top", y - w + "px");
}
if (what == UP) {
$id(ctl).set("opacity", "1");
isSelected = false;
}
}
function touch0(sender, event) {
ctl = sender;
isSelected = true;
}
function touch1(sender, event) {
ctl = sender;
isSelected = true;
}
function touch2(sender, event) {
ctl = sender;
isSelected = true;
}
onsensorchanged事件
可以为window添加该事件,当传感器感知发生改变比如摇晃时触发
例如
<window xmlns:web="http://www.yonyou.com/uapmobile/dsl" id="AboutCamera" onSensorChanged="shake()" controller="AboutCameraController" namespace="test.yyuap.com">
<import ref="AboutCamera.css" type="css"/>
<link type="text/css" href="sys/theme.css"/>
<div id="viewPage0">
<image id="image0" scaletype="fitcenter" src="picture"/>
<label id="label1">提示 : 摇一摇打开相册</label>
</div>
</window>
function shake(sender, args) {
$camera.openPhotoAlbum({
bindfield : "image",
callback : function() {
var img = $ctx.getString("image");
$id("image0").set("src", img);
}
})
}
onkeydown事件
在window上增加onkeydown事件,可以在按back键时监听传参
例如
<window xmlns:web="http://www.yonyou.com/uapmobile/dsl" id="Backspace_key1" onkeydown="this.onkeydown()" controller="Backspace_key1Controller" namespace="com.requirements">
<import ref="Backspace_key1.css" type="css"/>
<link type="text/css" href="sys/theme.css"/>
<input id="textbox0" bindfield="a" maxlength="256" placeholder="文本输入框" type="text"/>
<input id="textbox1" bindfield="b" maxlength="256" placeholder="文本输入框" type="text"/>
<input id="textbox2" bindfield="c" maxlength="256" placeholder="文本输入框" type="text"/>
<input id="button0" value="返回" onclick="this.button0_onclick()" type="button"/>
</div>
</window>
function com$requirements$Backspace_key1Controller$button0_onclick(sender, args) {
$ctx.dataCollect();
var json = $ctx.getJSONObject();
$alert(json);
$view.close({
"resultCode" : "15",
"data" : json//当前页面关闭时,把页面的数据传上个页面
})
}//Onkeydown事件把返回逻辑拷贝过去即可
function com$requirements$Backspace_key1Controller$onkeydown(sender, args) {
$ctx.dataCollect();
var json = $ctx.getJSONObject();
$alert(json);
$view.close({
"resultCode" : "15",
"data" : json//当前页面关闭时,把页面的数据传上个页面
})
}
文档更新时间: 2018-05-08 13:42