原生js–事件类型

  ​依据澳洲媒体1一日最新电视发表,约翰内斯堡西西部一处住所爆发枪击事件,形成3人谢世,一位受到损伤。近年来公安厅壹度到达现场,但事件原因未知。(报社记者王聪)

原生js–事件类型

 

一、表单事件:

submit事件

reset事件

click事件

change事件

focus事件(不冒泡) (IE和ES伍辅助冒泡的focusin)

blur事件(不冒泡) (IE和ES五援助冒泡的focusout)

input事件(ES5 textinput提供更便于的得到输入文字的方案)

 

2、Window事件

load事件

DOMContentLoaded事件

readyStatechage事件

unload事件

beforeunload事件

resize事件

scroll事件

 

三、鼠标事件

click事件

dbclick事件

mouseover事件(冒泡)

mouseout事件(冒泡)

mousedown事件

mouseup事件

contextmenu事件

mouseenter事件(不冒泡)

mouseleave事件(不冒泡)

mousewheel事件(FF DOMMouseScroll事件、DOM3 wheel事件)

 

4、键盘事件

keydown事件

keyup事件

keypress事件

捌、表单事件


四 . onTouch:down返回false,up返回true:

壹.先是是onTouch事件的down事件产生,此时:
二.长按,触发onLongClick事件,然后是onTouch事件的up事件发生,达成。
三.短按,先触发onTouch的up事件, 到早晚时间后,自动触发onLongClick事件。

日志:

图片 1

不长按.png

图片 2

长按.png

体制分析:

  1. onTouch事件中:down事件重回值标志此番事件是还是不是为点击事件(重返false,是点击事件;再次回到true,不记为点击事件),

  2. 而up事件标识这次事件甘休时间,相当于判别是不是为长按。

三.比如当down重返true时候,系统将把此番事件记录为点击事件,而up再次来到了true,表示一向尚未截至,一贯长按中,也就不会触发onClick事件了。

源代码:

package com.example.h.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private final String  TAG = MainActivity.class.getSimpleName();
    private Button bntTest1,bntTest2,bntTest3,bntTest4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bntTest1 = (Button) findViewById(R.id.bnt_test1);
        bntTest2 = (Button) findViewById(R.id.bnt_test2);
        bntTest3 = (Button) findViewById(R.id.bnt_test3);
        bntTest4 = (Button) findViewById(R.id.bnt_test4);

        bntTest1.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest1--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest1---onClick()触发----");
            }
        });
        bntTest1.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
               // Log.e(TAG,"--bntTest1---MotionEvent触发----"+event.getAction());
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest1---MotionEvent.ACTION_DOWN:触发----");
                        break;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest1---MotionEvent.ACTION_UP:触发----");
                        break;
                }
                return false;
            }
        });


        bntTest2.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest2--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest2---onClick()触发----");
            }
        });
        bntTest2.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest2---MotionEvent.ACTION_DOWN:触发----");
                        break;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest2---MotionEvent.ACTION_UP:触发----");
                        break;
                }
                return true;
            }
        });

        bntTest3.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest3--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest3---onClick()触发----");
            }
        });
        bntTest3.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest3---MotionEvent.ACTION_DOWN:触发----");
                        return true;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest3---MotionEvent.ACTION_UP:触发----");
                       return false;
                }
                return false;
            }

        });

        bntTest4.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                Log.e(TAG,"--bntTest4--onOnLongClick()触发----");
                return false;
            }
        });
        bntTest4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e(TAG,"--bntTest4---onClick()触发----");
            }
        });
        bntTest4.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        Log.e(TAG,"--bntTest4---MotionEvent.ACTION_DOWN:触发----");
                      return false;
                    case MotionEvent.ACTION_UP:
                        Log.e(TAG,"--bntTest4---MotionEvent.ACTION_UP:触发----");
                       return true;
                }
                return false;
            }
        });
    }
}

 

一、表单事件:

submit事件

reset事件

click事件

change事件

focus事件(不冒泡) (IE和ES五支撑冒泡的focusin)

blur事件(不冒泡) (IE和ES5帮衬冒泡的focusout)

input事件(ES5 textinput提供更便宜的拿走输入文字的方案)

 

2、Window事件

load事件

DOMContentLoaded事件

readyStatechage事件

unload事件

beforeunload事件

resize事件

scroll事件

 

三、鼠标事件

click事件

dbclick事件

mouseover事件(冒泡)

mouseout事件(冒泡)

mousedown事件

mouseup事件

contextmenu事件

mouseenter事件(不冒泡)

mouseleave事件(不冒泡)

mousewheel事件(FF DOMMouseScroll事件、DOM3 wheel事件)

 

4、键盘事件

keydown事件

keyup事件

keypress事件

四、键盘事件


系列地址

https://github.com/ruanjiankeji/ButtonEventAnalysis

如有不足,应接小伙伴指正,相互学习;假使认为还是能,欢迎小说star或然github上star、follow

六、拖拉事件


基础知识:

一.本篇稿子就不分析晦涩难懂的源码了(加上源码后小说内容太长,提出有耐心的读者本身查看源码来说明文章的解析结果)。在那里经过简单的代码间接打字与印刷日志让你清晰的认知Button的OnTouch事件传递机制(和onClick,onLongClick事件发生先后顺序)。
二.在onTouch事件中:down事件重回值标志此番事件是还是不是为点击事件(重临false,是点击事件;重临true,不记为点击事件),而up事件标识本次风浪截止时间,也正是推断是或不是为长按。

8.2、reset事件,submit事件

以下事件发生在表单对象上,而不是发出在表单的成员上。
(1)、reset事件
reset事件当表单复位(全部表单成员变回暗中认可值)时接触。

(2)、submit事件
submit事件当表单数据向服务器交由时接触。注意,submit事件的发生对象是form成分,而不是button成分(即便它的项目是submit),因为提交的是表单,而不是按键。

一 . onTouch返回false

一.首先是onTouch事件的down事件时有发生,此时,如果长按,触发onLongClick事件;
2.然后是onTouch事件的up事件产生,up完成,最终触发onClick事件。

日志:

图片 3

不长按.png

图片 4

长按.png

9.2、DOMContentLoaded事件,readystatechange事件

以下事件与文书档案状态相关。

(1)、DOMContentLoaded事件

(2)、readystatechange事件

叁 . onTouch:down重回true,up重临false:结果同二

一.首先是onTouch事件的down事件时有发生,然后是onTouch事件的up事件发生;
贰.之间不触发onClick和onLongClick事件

日志:

图片 5

不长按.png

图片 6

长按.png

体制分析:

  1. onTouch事件中:down事件重临值标志这次事件是不是为点击事件(重返false,是点击事件;再次来到true,不记为点击事件),

  2. 而up事件标志本次事件停止时间,也正是决断是否为长按。

3.比如当down重回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick恐怕onLongClick事件了。

四.于是尽管当up的时候回来false,系统也不会继续触发onClick事件了。

2.1、概述

二 . onTouch返回true

一.首先是onTouch事件的down事件发生,然后是onTouch事件的up事件爆发;
2.以内不触发onClick和onLongClick事件

日志:

图片 7

不长按.png

图片 8

长按.png

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注