
在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对象生成和删除事件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)