JQuery/Javascript函数需要$(document.ready)和$(document.ajaxsuccess

JQuery/Javascript函数需要$(document.ready)和$(document.ajaxsuccess,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个JQuery/Javascript函数,可以在我的站点中用于一些基本的UI功能。但是,此函数影响的许多元素将通过Ajax注入,而其他元素将是静态html 目前,通过复制函数并应用$(document).ready和$(document).ajaxsuccess,我已经能够使脚本为我工作 我的问题是: 实现这一点的适当方法是什么 这是我的JS: $(document).ready(function () { $(".hidesfieldset:not(:first)

我有一个JQuery/Javascript函数,可以在我的站点中用于一些基本的UI功能。但是,此函数影响的许多元素将通过Ajax注入,而其他元素将是静态html

目前,通过复制函数并应用$(document).ready和$(document).ajaxsuccess,我已经能够使脚本为我工作

我的问题是: 实现这一点的适当方法是什么

这是我的JS:

    $(document).ready(function () {
        $(".hidesfieldset:not(:first)").hide();
        $("fieldset").bind("focus click",function () {
            $(".hidesfieldset:not(:parent)").hide(800);
            $(".hidesfieldset", this).slideDown(800);

        });

    });

     $(document).ajaxSuccess(function () {
        $(".hidesfieldset:not(:first)").hide();
        $("fieldset").bind("focus click",function () {
            $(".hidesfieldset:not(:parent)").hide(800);
            $(".hidesfieldset", this).slideDown(800);

        });

    });
因为我的一些表单是通过ajax注入的,第一个函数并没有应用于它们,所以我还必须包括ajax成功

注*:对于JS,我是一个完全的新手,这是我第一次使用它,可能有点过头了。因此,如果你在这方面看到其他错误的东西,请随意评论

谢谢,
标记

当您通过ajax向页面非同步添加对象,并且希望将事件处理程序连接到一些新添加的对象时,您有以下选项:

  • 您可以通过将委派事件处理程序分配给静态父对象来使用委派事件处理程序,该静态父对象在最初加载页面时存在于页面中

  • 您可以在ajax调用的成功处理程序中将事件处理程序添加到动态添加的对象中,该调用在对象添加到页面后添加了事件处理程序

  • 在所有ajax调用之后,您可以在页面中检查新对象(这有点像黑客,但听起来像您正在做的事情)。您必须非常小心,不要将重复的事件处理程序添加到这个ajax调用之前已经存在的对象中

  • 如果页面HTML和类的结构是为其设计的,那么委派事件处理通常是处理此问题的最简单方法。以下是一些先前的答案,它们描述了如何使用委托事件处理:


    没有代码,我们无法真正提供帮助,但我认为您需要检查
    $(文档)并在需要时调用k。使用事件委派。