Weex provide the ability to let events trigger action, like starting a JavaScript when a user click on a component. Below are the common event attributes that can be added to weex components to define event actions.
**Notes: ** The principle of native event delivery under Android
and iOS
is different, only for iOS
here.
When a parent view has multiple peer views, iOS will select the highest level View to respond to the event, and the underlying view event will never be responded.
Weex add attribute eventPenetrationEnabled
to <div>
component. When the value is true
, the view's children views still respond to the event normally, while the view itself will not respond to the event, but pass the event to the lower level View.
Weex add attribute userInteractionEnabled
to <div>
component. When the value is true
, neither the view nor its children views respond to the event. The event is passed to the lower layer View.
The onclick attribute fires on a click gesture on the element. **Notes: ** The input
and switch
component does not currently support the click
event, please use change
or input
event instead.
type
: click
target
: The target component where the event is triggeredtimestamp
: Timestamp when event is triggeredIf a longpress
event is bound to a component, the event will be triggered when user long press on it. **Notes: ** The input
and switch
component does not currently support the click
event, please use change
or input
event instead.
type
: longpress
target
: The target component where the event is triggeredtimestamp
: Timestamp when event is triggeredIf a appear event is bound to a component inside a scrollable container, the event will be triggered when the component comes to be visible.
type
: appear
target
: The target component where the event is triggeredtimestamp
: Timestamp when event is triggereddirection
: The direction in which the scroller is scrolling. Could be up
or down
.If a disappear
event is bound to a component inside a scrollable container, the event will be triggered when the component scrolls out of viewport and disappears from your sight.
type
: disappear
target
: The target component where the event is triggeredtimestamp
: Timestamp when event is triggereddirection
: The direction in which the scroller is scrolling. Could be up
or down
.when you want to handler list in list, scroller in list which has touch conflict touch scene. you can use this to control touch dispatch. together with the following attr to achive smooth nest scroll.
shouldStopPropagationInitResult : default true/false,
shouldStopPropagationInterval : control touch call frequency with js. reduce js call with native.
Weex provides you with simple management of page status, such as viewappear
and viewdisappear
. The viewappear
event will be triggered when page is about to show or before any animations are configured for showing. For example, when calling push
method in navigator
module, this event will be trigged in new page. The viewdisappear
event will be triggeded when page is about to dismiss. Different from appear
and disappear
of component, these two events focus on the status of whole page, so they must be bound to the root component. In addititon, these events also can be bound to body component which is not root actually such as wxc-navpage
.
type
: viewappear
or viewdisappear
target
: The target component where the event is triggeredtimestamp
: Timestamp when event is triggered<template> <div> <div class="box" @click="onclick" @longpress="onlongpress" @appear="onappear" @disappear="ondisappear"></div> </div> </template> <script> const modal = weex.requireModule('modal') export default { methods: { onclick (event) { console.log('onclick:', event) modal.toast({ message: 'onclick', duration: 0.8 }) }, onlongpress (event) { console.log('onlongpress:', event) modal.toast({ message: 'onlongpress', duration: 0.8 }) }, onappear (event) { console.log('onappear:', event) modal.toast({ message: 'onappear', duration: 0.8 }) }, ondisappear (event) { console.log('ondisappear:', event) modal.toast({ message: 'ondisappear', duration: 0.8 }) } } } </script> <style scoped> .box { border-width: 2px; border-style: solid; border-color: #BBB; width: 250px; height: 250px; margin-top: 250px; margin-left: 250px; background-color: #EEE; } </style>