栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

动态创建的元素上的事件绑定?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

动态创建的元素上的事件绑定?

从 jQuery 1.7 开始,您应该

jQuery.fn.on
在填充了选择器参数的情况下使用:

$(staticAncestors).on(eventName, dynamicChild, function() {});

解释:

这称为事件委托,其工作原理如下。该事件附加到

staticAncestors
应处理的元素的静态父级 ( )。每次在此元素或后代元素之一上触发事件时,都会触发此 jQuery 处理程序。然后处理程序检查触发事件的元素是否与您的选择器 (
dynamicChild
)匹配。当匹配时,您的自定义处理程序函数将被执行。


在此之前,推荐的方法是使用

live()

$(selector).live( eventName, function(){} );

然而,

live()
在 1.7 中被弃用
on()
,而在 1.9 中被完全删除。该
live()
签名:

$(selector).live( eventName, function(){} );

… 可以替换为以下

on()
签名:

$(document).on( eventName, selector, function(){} );

例如,如果您的页面使用类名动态创建元素,

dosomething
您会将事件绑定到已经存在的父级(这是这里问题的核心,您需要绑定到存在的东西,不要绑定到动态内容),这可以(也是最简单的选项)是
document
. 尽管记住
document
可能不是最有效的选择。

$(document).on('mouseover mouseout', '.dosomething', function(){    // what you want to happen when mouseover and mouseout     // occurs on elements that match '.dosomething'});

事件绑定时存在的任何父级都可以。例如

$('.buttons').on('click', 'button', function(){    // do something here});

将适用于

<div >    <!-- <button>s that are generated dynamically and added here --></div>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514615.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号