程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery .live()vs .on()方法,用于在加载动态html后添加click事件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决jQuery .live()vs .on()方法,用于在加载动态html后添加click事件?

开发过程中遇到jQuery .live()vs .on()方法,用于在加载动态html后添加click事件的问题如何解决?下面主要结合日常开发的经验,给出你关于jQuery .live()vs .on()方法,用于在加载动态html后添加click事件的解决方法建议,希望对你解决jQuery .live()vs .on()方法,用于在加载动态html后添加click事件有所启发或帮助;

如果您希望单击处理程序适用于动态加载的元素,则可以在父对象(不会动态加载)上设置事件处理程序,并为其提供一个与动态对象匹配的选择器,如下所示:

$('#parent').on("click", "#child", function() {});

事件处理程序将附加到该#parent对象,并且只要单击事件在源于的事件上冒泡#child,它就会触发您的单击处理程序。这称为委托事件处理(事件处理委托给父对象)。

之所以这样做,是因#parent即使该#child对象尚不存在,您也可以将事件附加到该对象上,但是当它后来存在并被单击时,click事件将冒泡到该#parent对象,它将看到它起源于#child和有一个事件处理程序可以单击#child并触发您的事件。

解决方法

我正在使用jQuery v.1.7.1,其中显然不推荐使用.live()方法。

我遇到的问题是,使用以下方法将html动态加载到元素中时:

$('#parent').load("http://...");

如果我尝试在之后添加click事件,则不会使用以下两种方法之一注册事件:

$('#parent').click(function() ...);

要么

// according to documentation this should be used instead of .live()
$('#child').on('click',function() ...);

实现此功能的正确方法是什么?它似乎只对.live()有效,但我不应该使用该方法。请注意,#child是动态加载的元素。

谢谢。

大佬总结

以上是大佬教程为你收集整理的jQuery .live()vs .on()方法,用于在加载动态html后添加click事件全部内容,希望文章能够帮你解决jQuery .live()vs .on()方法,用于在加载动态html后添加click事件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。