在div中加载后执行脚本

时间:2012-12-21 14:29:38

标签: javascript ajax jquery

  

可能重复:
  Initialize script

我有一个页面(Page1.html),在这个页面中有一个div(#div1),它从另一个页面中的其他div获取其内容(Page2#div1 / 2/3/4/5)。内容由jQuery加载脚本加载。根据选择框中的选项加载内容,因此在Page1完成加载后加载内容。

问题: 当我从Page2获取一些依赖于jQuery的内容时,这些元素不起作用。它们不会执行。

我的问题: 是否有任何方法可以使整个#div从Page2(所有内容)中加载,以便在其加载时执行?现在,现有元素在加载时会“初始化”,例如:function initializeSlider(){slider};。

现在我正在尝试根据jQuery添加更多元素,如果初始化所有对象是执行所有这些脚本的正确方法,或者是否有任何方法可以同时执行所有jQuery元素,那么就没有必要逐个初始化所有对象?

执行或初始化一个脚本 如果在加载div时无法一次执行/初始化所有脚本。我试图执行或初始化此脚本但没有成功,尝试了“$(document).ready(function(){”和初始化它类似于滑块但元素没有执行。

$(document).ready(function() {
    $(".lil").click(function () {
      $(this).toggleClass("highlight");
    });
});

3 个答案:

答案 0 :(得分:4)

取决于您正在初始化的内容;对于事件,请确保并使用.on()

$("#div1").on('click', '.lil', function () {
    $(this).toggleClass("highlight");
});

答案 1 :(得分:2)

使用:

$(document).ready(function() {
    $("#div1").on('click', '.lil', function () {
      $(this).toggleClass("highlight");
    });
});

答案 2 :(得分:0)

您可以为该功能命名。类似的东西:

function toggleClasses(classToToggle) {
    $(classToToggle).click(function () {
        $(this).toggleClass("highlight");
    });
}

然后,您的主页可能有:

$(document).ready(function() {
    toggleClasses('.lil');
});

在您从第2页加载的局部视图的底部,添加以下内容:

<script>
    toggleClasses('.partialViewClass');
</script>

这样,只要完成部分视图加载,它就会调用相同的函数。

如果你所做的只是切换那个类,你可能想为辅助类添加一个参数,以区分局部视图中的元素和原始页面中的元素,这样原始页面中的元素就赢了在部分视图加载时切换回来。

因此,局部视图中的那些将需要高亮类以及次要区分类(class =“lil partialViewClass”)。将类作为参数传递给函数,这样每个函数都只会切换它应该的内容。