首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

伸缩侧边栏

效果图: 展开 收起 实现原理: 展开:单击图标或空白展开主菜单栏,单击图标额外展开菜单栏 收起:单击空白收起主菜单栏和所有菜单栏 通过js改变元素,并在样式表中定义不同类样式,实现样式改变...主菜单为.long,width:25rem,为.short,width:7.5rem 菜单为.hide,height:0,为.show,heigth由js根据元素数量计算 源代码...let in_ul = self.nextSibling.nextSibling; /*获取菜单元素个数(li标签)*/ let ll = in_ul.children.length...; /*获取主菜单*/ let out_ul = document.getElementById('list'); /*菜单收起单击展开主菜单和该菜单*/ if...= ll * 4 + 'rem'; out_ul.className = 'long'; } /*菜单展开单击收起该菜单*/ else {

26510

简单说 JavaScript中事件委托(上)

从上面的图中我们看见,当点击 蓝色 p 元素,先触发了 p 元素上绑定事件,然后又触发了 红色 div 元素上绑定事件,这就是事件冒泡了。 事件委托 实现 先来段代码 我们用事件委托方式改写一上面的代码,不过在这之前,我们还要明白一什么是 event 对象 任何事件触发后产生一个event对象 event对象记录事件发生鼠标位置...='li2'>2 //用事件委托,给父元素 ul 绑定单击事件 ul.onclick = function (e){ //这里e...='li2'>2 //用事件委托,给父元素 ul 绑定单击事件 ul.onclick = function (e){ //这里e...总结 这篇文章是比较基础,还有一些东西没有说,比如文中说 事件委托实现 时候,举例子比较简单,监听 li 里面没有元素,如果存在元素,那点击元素 事件就不会触发,那怎么办呢?

57420
您找到你想要的搜索结果了吗?
是的
没有找到

【Java 进阶篇】深入理解 JavaScript DOM Node 对象

添加和删除节点 一旦我们创建了新节点,我们可以使用以下方法将它们添加到文档中: appendChild(node):一个节点添加为另一个节点节点,作为最后一个节点。...removeChild(node):从父节点中删除指定节点。 下面是一个示例,演示如何创建新节点并将其添加到文档中: 元素,设置了其文本内容,然后使用appendChild方法新段落添加为元素节点。...Tomato Broccoli <script...当用户单击列表项,我们查找其列表并切换其hidden,以控制列表显示或隐藏。同时,我们还切换了展开/折叠按钮图标。 总结 JavaScript DOM Node对象是DOM操作核心。

21210

「Web编程API」- 03

DOM事件流 html中标签都是相互嵌套,我们可以元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 当时2大浏览器霸主谁也不服谁!...常情况terget 和 this是一致,但有一种情况不同,那就是在事件冒泡(父子元素有相同事件,单击元素,父元素事件处理函数也会被触发执行),这时候this指向是父元素,因为它是绑定事件元素对象...事件冒泡e.target和this abc abc abc var ul = document.querySelector...事件委托作用 我们只操作了一次 DOM ,提高了程序性能。 动态新创建元素,也拥有事件。 知否知否,点我应有弹框在手!

1.4K50

事件高级

eventTarget.attachEvent()方法指定监听器注册到 eventTarget(目标对象) 上,当该对象触发指定事件,指定回调函数就会被执行。...DOM事件流 html中标签都是相互嵌套,我们可以元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。 ​...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ?...常情况terget 和 this是一致, 但有一种情况不同,那就是在事件冒泡(父子元素有相同事件,单击元素,父元素事件处理函数也会被触发执行), 这时候this指向是父元素,因为它是绑定事件元素对象...事件委托作用 我们只操作了一次 DOM ,提高了程序性能。 动态新创建元素,也拥有事件。            知否知否,点我应有弹框在手!

1.3K20

事件高级

DOM事件流 html中标签都是相互嵌套,我们可以元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。 ​...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ?...常情况terget 和 this是一致, 但有一种情况不同,那就是在事件冒泡(父子元素有相同事件,单击元素,父元素事件处理函数也会被触发执行), 这时候this指向是父元素,因为它是绑定事件元素对象...console.log(this); ​ }); 事件冒泡e.target和this abc...事件委托作用 我们只操作了一次 DOM ,提高了程序性能。 动态新创建元素,也拥有事件。 知否知否,点我应有弹框在手!

1.5K41

前端成神之路-WebAPIs03

eventTarget.attachEvent()方法指定监听器注册到 eventTarget(目标对象) 上,当该对象触发指定事件,指定回调函数就会被执行。 ?...DOM事件流 html中标签都是相互嵌套,我们可以元素想象成一个盒子装一个盒子,document是最外面的大盒子。 当你单击一个div,同时你也单击div父元素,甚至整个页面。...比如:我们给页面中一个div注册了单击事件,当你单击div,也就单击了body,单击了html,单击了document。 ? 当时2大浏览器霸主谁也不服谁!...常情况terget 和 this是一致, 但有一种情况不同,那就是在事件冒泡(父子元素有相同事件,单击元素,父元素事件处理函数也会被触发执行), 这时候this指向是父元素,因为它是绑定事件元素对象...console.log(this); }); 事件冒泡e.target和this abc

2.9K20

第50次文章:JQuery基础

对象区别与转换 (1)jquery对象在操作,更加方便 (2)jquery对象和js对象方法不通用 (3)两者相互转换方式 jq -- > js: jq对象[索引] 或者 jq对象.get(索引)...语法:$("html标签名")获得所有匹配标签名称元素 id选择器。语法:$("#id属性值")获得与指定id属性值匹配元素 选择器。...语法:$("A B ")选择A元素内部所有B元素 选择器。语法:$("A > B")选择A元素内部所有B元素 (3)属性选择器 属性名称选择器。...3、CRUD操作 1. append():父元素元素追加到末尾 * 对象1.append(对象2):将对象2添加到对象1元素内部,并且在末尾 2. prepend():父元素元素追加到开头...,我们就是通过选中"请发言"对象,然后给每一张图像绑定一个单击事件,依次拼接在后面发言框后面即可。

1.6K30

在 jQuery Mobile 中使用 UI 组件

ui-block-b"> Right column 从一组 HTML 元素创建网格默认使用 CSS 是 ui-grid-* 。... 默认情况,块页眉文本显示为一个带 + 图标的按钮。...您也可以通过使用图标、缩略图和计数泡泡来创建不同视觉样式。您可以通过使用 ul-li-count ,将计数泡泡添加到一个列表项(清单 9)。 清单 9....Album ul-li-icon 限制图片大小,最大宽度和高度为 40px,它还能够图片放在列表项中适当位置。...在这种情况,您就会有一个长列表,它看起来几乎是无法使用,而搜索筛选器栏就是处理该问题一个很好方式。很幸运,使用 jQuery Mobile 搜索筛选器栏添加到列表中并不需要花很大功夫。

8.1K20

javascript事件流原理

上面这段html代码中,单击了页面中 元素, 在冒泡型事件流中click事件传播顺序为 —》—》—》document 在捕获型事件流中click事件传播顺序为...事件代理原理用到就是事件冒泡和目标元素,把事件处理器添加到父元素,等待元素事件冒泡,并且父元素能够通过target(IE为srcElement)判断是哪个子元素,从而做相应处理。...传统事件处理,为每个元素添加事件处理器,代码如下: View Code 事件代理处理方式,代码如下: red orange... yellow green blue indigo purple (function...如果新增其他元素(a,span,div等),直接修改事件代理事件处理函数即可,不需要重新绑定处理器,不需要再次循环遍历。

1K10
领券