js怎样在触发失焦事件时,防止触发另一个dom的点击事件

js怎样在触发失焦事件时,防止触发另一个dom的点击事件,第1张

在JS中,可以通过以下方法在触发失焦事件时,防止触发另一个DOM元素的点击事件:

1 使用setTimeout延迟触发:当目标DOM元素触发“失焦”事件时,使用setTimeout函数设置一定时间后再执行某个 *** 作(例如隐藏该元素)。在此期间内,即使用户单击了其他DOM元素,由于执行时间尚未到达,因此不会立即执行其他元素的点击事件。

2 在目标DOM元素上添加标记变量:在目标DOM元素上添加一个标记变量(例如_hasFocus),表示该元素是否处于焦点状态。在处理其他DOM元素的点击事件时,先判断当前目标DOM元素的标记变量是否为true,如果是,则不执行相关的 *** 作。

3 通过事件对象判断相关信息:在处理具体的失焦事件或点击事件时,可以通过事件对象(例如event)获取其相关的信息,包括触发元素、事件类型、事件时间等等。通过对这些信息的分析和比较,可以判断当前是否允许执行某个 *** 作。

需要注意的是,以上方法仅供参考,具体的实现方式可能会根据具体的场景和需求而有所差异。此外,在编写JavaScript代码时,还需要遵循相关的最佳实践,确保代码的可读性、可维护性和安全性。

sub和dom的三个层次为:

第一个层次。

将html文档封装成对象。

第二个层次。

在1的基础上,添加了功能,例如对事件和CSS的支持。

第三个层次。

支持 XML的一些特性。

dominance & submission,控制与服从,Dom对应统治方,是S的一种,Sub对应服从方,是M的一种。

喜欢D/S的人多半偏重精神方面的控制,肉体疼痛占得比例较小。

弗洛伊德说:”在受虐幻想中,可以发现一种明显的内容, 即负罪感。当事人假想他犯了某种罪过(犯罪性质是不确定的),必须用忍受痛苦和折磨的过程来赎罪。

BDSM一词的构成在此不多赘述,建立这种长期关系的计划如:观察—观察(早期了解)—开始(通过某些调教手段让sub信服sub和dom是什么、服从、喜欢)—调整(针对sub的偏差执行调整计划)—回归(解开束缚手段,让sub恢复无碍的正常生活)。

DOM事件等级:

DOM2级事件定义了addEventListener 和 removeEventListener两个方法,分别用来绑定和解绑事件,方法中包含三个参数,分别是绑定的事件处理的属性名称(没有on)处理函数和是否在捕获时候执行事件处理函数。

如果我们还需要添加一个鼠标的移入的方法。

1、生成:DOMNodeInserted:

$("#xxx")bind("DOMNodeInserted", function () {

   

});

2、删除:DOMNodeRemoved

$("#xxx")bind("DOMNodeRemoved", function () {

   

});

当 id为xxx的节点,有dom插入触发 DOMNodeInserted,有dom删除,触发DOMNodeRemoved。

不过只有非ie的浏览器支持。

在180版本之前,我们要想获取某个DOM绑定的事件处理程序可以这样:

$data(domObj,'events');//或者$('selector')data('events')

而从180版本开始,jQuery突然不支持这样使用了,而是改到了一个叫'_data'的函数功能上了,即,180及以后的版本你可以这么用:

$_data(domObj,'events');//注意,这里不能像$('selector')_data('events')这样用了。

要想写出兼容兼容各个jQuery版本的方式,这样获取即可:

var eventsData = $data(domObj,'events') || $_data(domObj,'events');//这个改变在easyui 131的源码中也有体 

ps:

1接受的domObj节点必须为dom节点对象,不能为jquery对象,如果是获取的jquery对象,要用get(0)或者[0]转为dom对象

2只能获取到使用jquery方法绑定的参数 on ,live 等。如果是直接写到元素上的事件是不能获取的,使用其他非jquery设置的事件也是无法获取的

分析:点击div#son div#other仍然会从粉色变为蓝色,因为这里的阻止冒泡是阻止从当前阶段(father绑定的事件)向上传递,并没有阻止div#son绑定的事件向上传递。要想得到点击div#son 但div#other不会从粉色变为蓝色。可以给div#son绑定一个事件,并阻止事件从目前阶段向上传递:

Vue官方-表单输入绑定

v-model指令,绑定文本框的内容,实现双向数据绑定。

v-model指令,绑定多行文本框的内容,实现双向数据绑定。

绑定一组单选框,每个单选框指定相同的name属性。

下拉框,绑定一个数组。

单选时:

多选时 (绑定到一个数组):

下拉框设置multiple属性后,按住ctrl就可以选择多个项

在默认情况下, v-model 在每次 input 事件触发后将输入框的值与数据进行同步。你可以添加 lazy 修饰符,从而转为在 change 事件之后进行同步:

@ 是 v-on: 的简写,通过 v-on: 指令绑定事件,指定一个, methods 选项,里面的,定义的,方法。

Vue官方-事件修饰符

在事件处理程序中调用 eventpreventDefault() 或 eventstopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题,Vuejs 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

stop 用于阻止事件冒泡

prevent 用于阻止默认行为

self 只能在自身元素上触发,不能在子元素身上触发触发的

once 点击事件将只会触发一次

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

enter 只有在回车时,才会调用事件方法

tab

delete (捕获“删除”和“退格”键)

esc

space

up

down

left

right

obj对象里面的每一个属性,都会采用ObjectdefineProperty去封装,实现响应式。

所谓响应式,指的是,数据发生变化后,页面自动更新。

给对象,后添加的数据不会采用ObjectdefineProperty去封装,所以,就失去了响应式。

vue通过 $set 方法,给对象添加响应式属性 this$set(thisobj,'sex','男')

vue通过 $delete 方法,删除对象的属性,并触发响应式 this$delete(thisobj,'age')

在vue中, *** 作数组,并触发页面更新只能使用数组的以下方法:

push,pop,unshift,shift,splice,resolve,sort

=>>> thisarrpush(66) thisarrsplice(2,1)

如果想通过下标 *** 作数组,也必须要使用 $set 和 $delete 方法,

=>>> this$set(thisarr,5,66) this$delete(thisarr,2)

on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

自 jQuery 版本 17 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。

注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

 $("#div1")on("click",function(){

    $(this)css("background-color","pink");

  });

以上就是关于js怎样在触发失焦事件时,防止触发另一个dom的点击事件全部的内容,包括:js怎样在触发失焦事件时,防止触发另一个dom的点击事件、sub和dom的三个层次是什么、jquery如何写dom对象生成和删除事件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10210078.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存