gpt4 book ai didi

javascript - jQuery 将元素添加到先前定义的事件处理程序

转载 作者:行者123 更新时间:2023-11-30 06:53:26 25 4
gpt4 key购买 nike

使用 jQuery,是否可以将元素添加到先前定义的事件处理程序中?我意识到这样做的正确方法是使用 on() 定义处理程序,以便包含动态插入的元素,但问题是我试图扩展的处理程序是由代码定义的在我无权访问的服务器上。服务器在文件顶部输出如下代码:

$('#wrapper .block h2').click(function() {
//do stuff
});

然后,在页面底部,我添加了一些自定义 javascript 代码,用于插入另一个 #wrapper .block h2 元素。我想知道是否有任何方法可以将这个新元素包含在由注册 click 处理程序的页面顶部的代码定义的事件处理程序中。

或者,有没有什么方法可以让我以编程方式访问为该事件处理程序定义的回调函数?这样我就可以使用 on() 方法自己重新创建它。

最佳答案

为此,您需要访问由 jQuery 存储的内部事件句柄。在以前的版本 ( prior to 1.8 ) 中,您可以使用数据 API 来完成它,例如 $('.some').data('events')。但是,它不再可用。但是您仍然可以使用 $._data 方法访问元素数据对象。然后你会做这样的事情:

var events = $._data($(selector)[0], 'events'),
click = events && events.click;

if (click) $el.on('click', click[0].handler);

但是请注意,$._data 是一个私有(private)属性,并且不能保证它有一天不会改变(就像以前你可以访问元素数据一样$.cache,但它现在不见了)。

演示:http://jsfiddle.net/dfsq/e94hau62/

关于javascript - jQuery 将元素添加到先前定义的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25386649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com