jquery on如何给未来元素绑定事件?

贾芬
• 阅读 6906

我们要想在一个元素上绑定一个事件,那么这个元素必须先存在,也就是绑定事件动作前就已有这个元素。

这是一个给元素绑定任何事件的前提。

如果按照这种思路走,那么“给未来元素绑定事件”将会是一个死胡同。

我们跳出问题设定的思维陷阱,把元素绑在未来元素的父级上,那么这个问题就迎刃而解了。

demo如下:

html部分代码

<ul class="menu">
    <li class="son">php</li>
    <li class="son">javascript</li>
</ul>
<button class="add">添加菜单</button>

js部分代码

$('button.add').click(function(){
    $('<li class="son">mysql</li>').appendTo('ul.menu');
})

//给li绑定click事件
//记住不要把事件直接绑定在son元素上$('.son').on('click',function(){})
//正确的姿态:
$('.menu').on('click', '.son', function(){
    alert('正在进入...');
})

ok,拿这个demo尝试一下,是不是未来添加的几个菜单项都被绑定了点击事件了呢?没错,jquery on 绑定未来事件就是这么简单。

声明原文来自求索网:jquery on如何给未来元素绑定事件

点赞
收藏
评论区
推荐文章
Dax Dax
4年前
jQuery 的事件绑定和事件委托(事件代理)
简单以jQuery的on()方法为例说明:API:1.on(events,selector,data,handler) 如果on()方法的selector参数为空,事件处理程序就被称为直接绑定。每当在被绑定元素上(如下例中被绑定的document元素,译者注)发生事件时,无论这个事件发生在这个元素上还是从内层元素经冒泡而
Karen110 Karen110
4年前
盘点JavaScript focus/blur(聚焦)实际应用
大家好,我进阶学习者。一、前言当用户点击某个元素或使用键盘上的Tab键选中时,该元素将会获得聚焦(focus)。当网页加载时,HTML特性(attribute)。autofocus也可以让一个焦点落在元素上,不仅如此,还有其它途径可以获得焦点。二、focus/blur事件当元素聚焦时,会触发focus事件,当元素失去焦点时,会触发blur事件。
放学路上 放学路上
3年前
微信小程序事件传参与vue传参的不同
1、vue点击事件传参(day)的写法:2、微信小程序写法(1)事件传参(2)获取参数dayprocess(e)console.log(e.currentTarget.dataset.day)3、总结:微信小程序不支持事件传参,可以通过把参数绑定在元素上,通过currentTarget.dataset获取参数。
Easter79 Easter79
3年前
vue element
1.真正理解vmodelinput元素上的vmodel其实是一个语法糖,其真正作用有两个:(1)创建一个props,其键为value;(2)监听input事件,改变value。键名与事件名都可以另外设置。当定义一个组件时,vmodel是绑定在input的外层的,所以需要手动实现vmodel。2.provide/injectprov
LinMeng LinMeng
4年前
v-on绑定多个方法
von绑定多个方法触发机制不同语法如下:<divvon"{click:getSome,mousemove:MouseClick}"von绑定多个方法</div一个事件绑定多个函数触发机制相同,较少<div@click"getA(),getB()"一个事件绑定多个函数</div
可莉 可莉
3年前
06. react 初次见面
    React元素的事件处理和DOM元素的很相似。但是有一点语法上的不同:React事件绑定属性的命名采用驼峰式写法,而不是小写。如果采用JSX的语法你需要传入一个函数作为事件处理函数,而不是一个字符串(DOM元素的写法)    例如,传统的HTML:<buttononclick"activateLas
Stella981 Stella981
3年前
Android开发之使用pull解析XML文件
Android已经集成进了Pull解析器,所以无需添加任何jar文件。android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的。Pull解析器的运行方式与SAX解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。跟SAX不同的是,Pull解析器产生的事
Wesley13 Wesley13
3年前
BFC清除浮动
BFC就是清除浮动用来处理文档脱离文档流的问题清除浮动的方法:a、父元素也添加一个浮动    产生弊端就是:margin不能使用b、给父元素添加一个:display:inlineblock     弊端同a一样:无法使用marginc、给父元素添加高     
Stella981 Stella981
3年前
JavaScript事件详解
1.事件传播机制:事件冒泡,事件捕获。2.注册事件处理程序方式:设置html标签属性为事件处理程序,文档元素的事件处理程序属性,名字由“on”后面跟着事件名组成,例如:onclick,onmouseover,用法如下1<d
Stella981 Stella981
3年前
JavaScript 基础(四)
HTMLDOMEvent(事件)HTML4.0的新特性之一是有能力使HTML事件触发浏览器中的动作(action),比如当用户点击某个HTML元素时启动一段JavaScript。下面是一个属性列表,这些属性可插入HTML标签来定义事件动作。onclick//当用户点
Stella981 Stella981
3年前
JavaScript事件属性event.target和currentTarget 属性的区别。
event.target获取的是触发事件的标签元素event.currentTarget获取到的是发起事件的标签元素一、事件属性:event.targettarget事件委托的定义:本来该自己干的事,但是自己不干,交给别人来干例子1!(https://oscimg.oschina.n