精华内容
下载资源
问答
  • angularjs 点击事件获取 点击对象

    千次阅读 2017-07-27 16:44:32
    {{y}} ... 鼠标离开 字 变黑色 3 点击发生跳转 js 代码 $($event.target).text().toString() $scope.areaId= $($event.target).attr("name"); $($event.target).css("color","#EC7600");

    <div class="provinceFont" data-ng-click="go($event)" ng-mouseenter="additemcss($event)" ng-mouseleave="removeitemcss($event)">{{y}}</div>

    比如 上面demo要到达的效果是 1. 鼠标悬停 字变橙色 2. 鼠标离开 字 变黑色 3 点击 字 发生跳转

    js 代码

    $($event.target).text().toString()

    $scope.areaId= $($event.target).attr("name");

    $($event.target).css("color","#EC7600");

    $($event.target).css("color","black");

      

    展开全文
  •  我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的——既然上一专题中说事件...

    引言:

     当我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的——既然上一专题中说事件是一个多播委托,然而自动生成的代码中只有事件的实例化,却没有看到事件的调用,那既然没有事件调用的代码,那封装的Click为什么会执行呢?

    一、点击按钮时触发Click事件背后发送的事情

    在引言中提出了我的提问的, 我相信有些朋友可能也会有这样的疑问的,然后事件肯定是调用了的, 只是不是我们代码中调用,而是Butoon控件的内部代码里面调用了事件,而导致委托封装的Click方法而被调用,这样才符合我们看到的情况的——我们点击按钮后,我们后台代码中的Click方法就会执行。为了明白到底背后发生了什么事情的, 让我们一起来探究个究竟吧?

    我们新建一个Windows 窗体程序,然后在窗体中拖入一个Button控件并单击按钮,这时候VS为我们生成了如下的代码:

    [csharp] view plaincopy
    1. private System.Windows.Forms.Button button1;  
    2.  private void InitializeComponent()  
    3.         {  
    4.             his.button1 = new System.Windows.Forms.Button();  
    5.          
    6.  this.button1.Location = new System.Drawing.Point(105, 89);  
    7.             this.button1.Name = "button1";  
    8.             this.button1.Size = new System.Drawing.Size(75, 23);  
    9.             this.button1.TabIndex = 0;  
    10.             this.button1.Text = "请点击我";  
    11.             this.button1.UseVisualStyleBackColor = true;  
    12.             this.button1.Click += new System.EventHandler(this.button1_Click);  
    13. }  
    14. // 后台代码  
    15.   private void button1_Click(object sender, EventArgs e)  
    16.         {  
    17.   
    18.         }  

    从上面代码中我们看到VS为我们自动创建了一个Button对象并实例化,设置了它的属性并通过 this.button1.Click += new System.EventHandler(this.button1_Click);这行代码把 button1_Click注册对Click事件的关注,然而事件的调用代码在哪里呢? 下面我们就在button1_Click方法里面设置断点看看代码是如何执行的(通过查看调用堆栈来看看代码的执行顺序),下面是我设置断点的一张调用堆栈截图:

    从上图中我发现在调用button1_Click方法之前要执行Control.OnClick(System.EventArgs e)方法的,然后我们用发射工具去查看下Control.OnClick(System.Eventrgs e)方法中具体有什么样的代码:OnClick方法内部代码截图为:

    从反射的代码中可以明白,首先从Events(大家可以通过反射工具去查看Events的类型,它的类型为EventHandlerList,而EventHandlerList又是一个密封类)委托集合中取出委托,如果Click事件(委托)实例化了的话,此时就不为空,此时就会调用委托——handler(this, e),我们知道之前我们通过this.button1.Click += new System.EventHandler(this.button1_Click);代码实例化了委托事件,所以此时被EventHandler封装的button1_Click方法就会执行。

    通过上面的解释我已经解除了我一开始的疑惑了,事件的调用在.Net类库中的Control.OnClick方法里面调用,这也就是我说要表达的Click事件背后做的事情的
    下面是反射得到的Click事件的代码截图:

     

    二、小结

    本专题首先提出我对按钮单击事件背后发生的事情的疑惑,通过调试和反射工具一步一步把疑惑接触,相信其他控件的其他事件也是如此的,本专题主要想让大家知道下.Net类库为我们做的事情的,希望一些初学者们了解知识时,要努力知道事物的本质。最后希望本专题可以让大家更进一步的理解事件的本质的,我将下一专题和大家分享下我理解的泛型到底是怎样的。

    反射工具的下载地址:http://files.cnblogs.com/zhili/Reflector.zip

    展开全文
  • 当事件发生时会产生事件对象事件对象的作用是用来记录“事件发生是一些相关的信息。注意事件对象只有在事件发生时才会产生,我们无法手动创建,并且事件对象只能在处理函数内部访问,处理函数允许结束后该对象自动...

    要想搞明白js的事件机制,必须搞清楚几个概念:事件对象,事件源,还有事件流

    事件对象:

    当事件发生时会产生事件对象,事件对象的作用是用来记录“事件发生是一些相关的信息。注意事件对象只有在事件发生时才会产生,我们无法手动创建,并且事件对象只能在处理函数内部访问,处理函数允许结束后该对象自动销毁。

    怎么理解那??

     

    <script>  
            document.onmousemove = function (ev) {  
                var e = ev || window.event;  
                var div = document.getElementById('div');  
                div.innerHTML = "clientX:"+ e.clientX;  
            }  
     </script>  

     

     

    如上代码,当onmousemove事件发生时,就会产生一个事件对象,就是程序中的event对象,我们只能在这个匿名函数中访问到这个event对象,在函数外面是访问不到的,同样我们也无法手动创建这个event对象;

     

    如何获取事件对象那??

    var e = event || window.event; 这句话就是定义了一个变量来获取事件对象,因为不同的浏览器获取事件对象的方法有点不太一样,IE下是window.event,标准下是event,为 了兼容所以写了event || window.event.

     

    事件对象也分为:

    鼠标事件对象,键盘事件对象等,顾名思义鼠标事件发生时产生鼠标事件对象,键盘事件发生时产生键盘事件对象;既然是对象,就必然有一些属性方法啥的。

    鼠标事件对象上的常用属性:

    clientX,clientY,screenX,screenY,offsetX,offsetY

    键盘事件对象上的属性有:

    keyCode: 用来获取键盘码的;比如空格的键盘是32,回车13等

    cltkey: 判断alt键是否被按下,按下是true,反之false

    Ctrlkey: 判断Ctrlkey键是否被按下,按下是true,反之false

    Shiftkey : 判断Shiftkey 键是否被按下,按下是true,反之false

     

    说到这里相信大家应该理解“事件对象”了吧!接着说一说事件源。

    事件源:

    在事件中,当前操作的那个元素就是事件源。比如网页元素中a标签和input都有onclick事件,当点击a发生onclick事件时,事件源就是a标签,当点击input发送onclic事件是,事件源就是input。

    如何获取事件源那??

    IE下:window.event.srcElement  

    标准下:event.target

    由此可见,我们是通过事件对象获取到的事件源。

     

     

    例如:点击一个div外部的时候使div消失

        $(document).click(function(event) {
            if ($(event.target).attr("class") != "unitName") {
                if ($("#showDiv").css("display") == "block") {
                    $("#showDiv").css("display", "none");// 点击外部的时候隐藏名字提示框
                }
            }
        })

     

    查看事件的target:

     

    展开全文
  • event是什么?事件对象

    千次阅读 2019-04-17 09:22:52
    事件对象包含的几个操作原语:(这里只了解) CreateEvent() 创建一个事件对象 OpenEvent() 打开一个事件对象 SetEvent() 设置指定的事件对象为有信号状态 WaitForSingleObject() 等待一个事件 ...

    一、什么是event

    1.event是事件函数对象,内置对象的一种
    • 事件对象包含的几个操作原语:(这里只当了解)
    CreateEvent() 创建一个事件对象
    OpenEvent() 打开一个事件对象
    SetEvent() 设置指定的事件对象为有信号状态
    WaitForSingleObject() 等待一个事件 
    WaitForMultipleObjects() 等待多个事件 
    
    WaitForMultipleObjects 函数原型: 
    WaitForMultipleObjects( 
             DWORD nCount, // 等待句柄数 
             CONST HANDLE *lpHandles, //指向句柄数组 
             BOOL bWaitAll, //是否完全等待标志 
             DWORD dwMilliseconds //等待时间 
    )
    
    2.当触发某个事件,都会产生一个事件对象Event
    • 常用场景
    <script type="text/javascript">
            // 获取节点
    	var wrap=document.getElementById('wrap');
          // 可见事件函数里面有e参数,这个e对应的就是event对象,也可以缩写成ev,每个事件函数都有这个e
    	wrap.function(e)
    	{
    		var ev=e || window.event;  //或语法,返回为真的值
    		console.log(ev);
    		// 2.事件对象点击所在的位置
             //clientX和clientY,针对于浏览器视窗而言
    		console.log("clientX:"+ev.clientX+" "+"clientY:"+ev.clientY);
    		//offsetX和offsetY相对于自身而言
    		console.log("offsetX:"+ev.offsetX+" "+"offsetY"+ev.offsetY);
    		//screenX和screenY相对于显示屏
    		console.log("screenX:"+ev.screenX+" "+"screenY:"+ev.screenY);
    		//3.点击所对应的标签
    		console.log(ev.target);
    	}
    </script>
    
    • 事件通常与函数结合使用,函数不会在事件发生前被执行!
    • event对象只在事件发生的过程中才有效。
    • event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。

    二、event有什么用

    1.event每个事件函数都有的内置对象,里面储存着事件发生之后的信息
    2.我们可以根据这些信息做很多判断,或者是获取信息来显示
    • event对象属性和方法
    - clientX,clientY:返回当事件被触发时,鼠标指针相对于浏览器窗口可视文档区域的左上角的的水平x坐标和垂直y坐标;
    - screenX,screenY:返回当某个事件被触发时,鼠标指针相对于显示器左上角的水平x坐标和垂直y坐标;
    - offsetX,offsetY/layerX,layerY:事件发生的时候,鼠标相对于源元素左上角的位置;
    - x,y/pageX,pageY:事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素;
    - altKey,ctrlKey,metaKey,shiftKey:返回当事件被触发时,”ALT”、”TRL”、”meta”、”SHIFT”键 是否被按下;
    - keyCode:返回keydown和keyup事件发生的时候按键的代码,以及keypress 事件的- Unicode字符(firefox2不支持 event.keycode,可以用 event.which替代 );
    - button:返回当onmousedown, onmouseup, 和 onmousemove 事件被触发时,哪个鼠标按钮被点击。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下(firefox中 0代表左键,1代表中间键,2代表右键); 
    可能的值: 
    - 0 没按键
    - 1 按左键
    - 2 按右键
    - 3 按左右键
    - 4 按中间键
    - 5 按左键和中间键
    - 6 按右键和中间键
    - 7 按所有的键
    - type:事件的类型,如onlick中的click;
    - srcElement/target:事件源,就是发生事件的元素;
    - relatedTarget:返回与事件的目标节点相关的节点;
    - fromElement,toElement:对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素,toElement引用移入鼠标的元素;
    - currentTarget:返回其事件监听器触发该事件的元素;
    - timeStamp:返回事件生成的日期和时间;
    - eventPhase:返回事件传播的当前阶段,1表示捕获阶段,2表示处于目标,3表示冒泡阶段;
    - detail:表示的是与事件相关的细节信息
    - bubbles:返回布尔值,指示事件是否是起泡事件类型;
    - cancelable:返回布尔值,表示是否可以取消事件的默认行为;
    - cancelBubble:一个布尔属性,默认是false。把它设置为true的时候,将阻止事件进一步起泡到包容层次的元素;(e.cancelBubble = true; 相当于 e.stopPropagation();)
    - returnValue:一个布尔属性,设置为false的时候可以阻止浏览器执行默认的事件动作;(e.returnValue = false; 相当于 e.preventDefault();)
    - defaultPrevented:表示是否调用了preventDefault()
    - initEvent(eventType,canBubble,cancelable):初始化新创建的 Event 对象的属性;
    - preventDefault(): 通知浏览器不要执行与事件关联的默认动作;
    - stopPropagation():不再派发事件;
    - attachEvent(eventType, fn),detachEvent()/addEventListener(事件类型, 回调函数, 事件机制)
    - removeEventListener:为制定 DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。事件机制分为冒泡和捕获,如果为false表示事件冒泡,为true表示事件捕获。
    - 在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素;
    
    • 突然这么大的信息量,可能不太容易接受,但是这个可以当作工具使用,当想获取到什么信息的时候可以查找对应的来使用

    三、什么情况下使用用event

    1.最常用的当然是阻止事件冒泡了
    • 阻止事件冒泡:结合监听器addEventListener+event的stopPropagation方法
    <script>
        $btn=document.querySelector('#btn');
        // 三个参数 1.事件名称 2.函数(监听器) 3.事件监听阶段-捕获阶段 冒泡阶段
        // $btn.addEventListener('click',clickFun,false);
        // function clickFun(ev) {
        //         console.log(ev);
        //     }
        /*
            添加点击事件,之前前面有on意思是绑定的意思,而现在add就是绑定的意思,所以不需要加on
            false为冒泡,true为捕获
            冒泡从里往外,比如儿子点击事件发生了,父级元素点击也可以发生
            捕获从外往内,
        */
        $btn.addEventListener('click',function(ev){
            // 阻止事件冒泡  stopPropagation()
            ev.stopPropagation();
            alert('点击了btn');
        },false);
    
        $box=document.querySelector('#box');
        $box.addEventListener('click',function(ev){
            alert('点击了box');
        },false);
        // 这里会弹出两次,点击按钮的时候.这种现象就叫事件冒泡    
    </script>
    
    2.小程序应用场景下,使用event来传递参数
    • 小程序事件传参
    html部分
    <view bindtap='setId' data-index="{{index}}">点击</view>
    js部分
    Page({
      data: {
        index:'2'
      },
      // 事件传参,在事件后面设置data-index属性:data-后的自取,在通过event来获取传的参数
      setId(e){
        let index= e.currentTarget.dataset['index'];
        console.log(index);          //  2
      },
    })
    
    • 这里演示的是传的动态参数,实用场景为遍历数组渲染根据点击传递当前点击对象的信息以获取后续详情

    四、小总结

    • event让事件更加丰富,功能更加多样性
    • 使用技巧,根据所需功能百度了解获取所需信息的方法结合项目使用
    • 不同场景下event的用法是不同的,我们需要去涉猎,遇到可以参照别人的来尝试
    展开全文
  • jquery 的on方法获取发生事件的元素对象方法一:一个元素绑定事件的时候方式一:使用$(this)获取 如下代码:<!DOCTYPE html> <title>Title <script src="../js/jquery-3.2.1.js"></script>
  • 从经典的角度看,观察者模式是一种通知变化的模式,一般认为只在对象发生变化感兴趣的场合有用。主题对象知道有观察者存在,设置会维护观察者的一个队列;而从广义的角度看,观察者模式是中传递变化数据的模式,需要...
  • 什么是面向对象

    千次阅读 2019-04-02 18:05:19
    女朋友:什么是面向对象?是要面向我写代码吗? 我: 不是啦,这个面向对象对象不是你这个对象啦。 此时,我突然感受到了一股莫名的杀气。 我:什么?你还有其他对象吗?有我好看吗?有我瘦吗?不对。你不...
  • js中事件对象event

    千次阅读 多人点赞 2018-03-06 16:40:10
    一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细信息(包括导致事件的元素、事件的类型、以及其它与特定事件相关的信息等。这个对象是在执行事件时,浏览器通过函数传递过来的。)都会被临时保存...
  • touchcancel:当点击过程中电话阻止事件时 2.移动端的事件对象的常用属性: (1)Touch常用的DOM属性: touches:表示当前跟踪的触摸操作的Touch对象的数组–点击触摸时有多少个Touch对象 targetTouches:特定于事件目标...
  • 在单文档中单击鼠标左键时没有任何响应,但移动到某个区域单击时会发生响应事件。如在上一个鼠标变形的区域响应鼠标的单击事件。(130,60)(210,60)(130,150)(210,150) 具体步骤: 1.单击View菜单->ClassWizard-...
  • 事件:指的是鼠标点击,键盘输入等用户操作。其本身就是一个对象。...事件源:发生事件对象,一般指某一具体的组件,比如:用户点击某Button,则此Button即为事件源。 侦听器:是一个方法,用以响应事
  • 点击改变 import marketAssetTradeFormDialog from "@/common/components/app/market/market-asset-trade-form-dialog.vue" export default { data() { return { name:"kirin", obj:{ ...
  • 关于失焦事件点击事件发生冲突的解决办法
  • JS事件事件对象事件

    万次阅读 2015-05-11 23:14:18
    当事件发生时会产生事件对象事件对象的作用是用来记录“事件发生是一些相关的信息。注意事件对象只有在事件发生时才会产生,我们无法手动创建,并且事件对象只能在处理函数内部访问,处理函数允许结束后该对象自动...
  • 面向对象设计与事件

    千次阅读 2014-02-26 17:02:52
    面向对象的设计给编程带来很大的便利和好处,在贯彻这种原则的语言中把类作为代码单元似乎也是自然的事情。但是实践中,剥夺了过程的独立生存权有时又会让代码失去过去的灵活和便捷。对事件的编程就是这样的场合。...
  • html:<a href="#" class="change">点击前</a>jquery:$(document).on('click','.change',function(){ $(this).text("点击后"); })
  • 将安全性信息应用到以下对象发生错误”解决办法 要夺取所有权时,点“安全”添加用户并允许所有权限后点击“应用”, 一直“无法保存对。。。(文件夹名)权限所在的更改。拒绝访问”啊 必须先点击“高级”,把...
  • 1、概念: Document Object Model 文档对象模型:将标记语言文档的各个组成部分,封装为对象。...网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被...
  • 2、event.currentTarget指向事件所绑定的元素,而event.target始终指向事件发生时的元素。 3、事件真正的发送者是evt.target(而且是可以变的,根据触发的不同displayObject),注册侦听器的是evt.currentTarget...
  • [js点滴]JavaScript事件Event对象03

    千次阅读 2016-11-13 14:22:33
    Event对象事件发生以后,会生成一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象,所有的事件都是这个对象的实例,或者说继承了Event.prototype对象。Event对象本身就是一个构造函数,可以用来生成...
  • “将安全性信息应用到以下对象发生错误”解决办法 要夺取所有权时,点“安全”添加用户并允许所有权限后点击“应用”, 一直“无法保存对。。。(文件夹名)权限所在的更改。拒绝访问”啊 必须先点击“高级”,...
  • 浏览器事件对象详解

    千次阅读 2017-04-06 23:01:42
    客户端js程序采用了异步事件驱动模型,每当我们点击或敲击键盘时,浏览器就会产生事件,如果js程序关注特定类型的事件,那么它可以注册这类事件发生时要调用的一个或多个处理函数。这种风格并不止应用于web编程,...
  • JS基础——事件对象event

    万次阅读 热门讨论 2014-10-27 21:52:37
    事件什么会是对象呢?先了解一下事件处理 一、事件处理  JS在事件处理函数中提供了事件对象,帮助处理鼠标和键盘事件。同时还可以修改一些事件的捕获和冒泡流的函数。 事件处理分为三部分:对象.事件处理...
  • 事件通常与函数配合使用,这样就可以通过发生事件来驱动函数执行。 事件句柄列表 下面是一个属性列表,这些属性可插入HTML标签来定义事件动作。 onabort:图片加载被中断 onblur: 元素市区焦点 onchange: ...
  • >>>点击网址后,应用层的DNS协议会将网址解析为IP地址; DNS查找过程: 1. 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。 2. 如果用户的浏览器缓存中没有,浏览器...
  • JavaScript中的Event事件对象详解

    万次阅读 多人点赞 2016-10-07 17:36:10
    在JavaScript中对于事件来讲,首先,我们需要了解这样几个概念:事件事件类型、事件绑定、事件监听、事件处理程序(事件侦听器)、事件对象(事件源)、事件流、事件冒泡、事件捕获、事件性能优化(事件委托[事件代理]...
  • JavaScript学习12:事件对象

    千次阅读 2015-07-03 08:15:13
    最方便和强大的就是事件对象了,它们可以帮你处理鼠标和键盘方面的很多事情,此外我们还可以修改一般事件的捕获或者冒泡流的函数。  在上篇博客中我们已经对事件有了一个基本的认识,结尾处我们提到了事件处理函数...
  • JS冒泡、捕获、默认事件那些事W3C规范三个事件阶段阻止冒泡、取消默认行为)(默认事件)防止冒泡和捕获取消默认事件return false兼容的使用方法(代码)事件对象event事件对象event的一些兼容性写法 W3C规范三个事件阶段...
  • HTML DOM Event 对象(按钮事件)

    千次阅读 2018-10-20 23:42:11
    onclick 用户点击某个对象时调用的事件句柄。 ondblclick 用户双击某个对象时调用的事件句柄。 onerror 在加载文档或图像时发生错误。 onfocus 元素获得焦点。 onkeydown 某个键盘按键被按下。 onkeypress 某个...
  • 【JavaScript】window对象事件

    千次阅读 2015-03-08 12:08:27
    window对象-事件 专用事件: onload事件:我们需要在网页文档下载完毕时执行 的程序代码,需要放在onload事件处理程序中去编写。 onunload事件:在网页文档卸载完毕后,需要在网页 关闭时执行的程序代码,需要放在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 271,141
精华内容 108,456
关键字:

当点击对象是发生什么事件