2

可能重复:
初始化脚本

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

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

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

现在我正在尝试根据 jQuery 添加更多元素,如果初始化所有对象是执行所有这些脚本的正确方法,或者是否有任何方法可以一次执行所有 jQuery 元素所以不需要初始化所有一一反对?

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

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

3 回答 3

4

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

$("#div1").on('click', '.lil', function () {
    $(this).toggleClass("highlight");
});
于 2012-12-21T14:34:42.403 回答
2

利用:

$(document).ready(function() {
    $("#div1").on('click', '.lil', function () {
      $(this).toggleClass("highlight");
    });
});
于 2012-12-21T14:35:07.653 回答
0

你可以给那个函数一个名字。就像是:

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

然后,您的主页可能有:

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

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

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

这样,一旦部分视图完成加载,它将调用相同的函数。

如果您所做的只是切换该类,则可能需要为辅助类添加一个参数,以区分部分视图中的元素与原始页面中的元素,这样原始页面中的元素就不会得到加载局部视图时切换回来。

因此,您的部分视图中的那些将需要突出显示类以及次要区分类(class="lil partialViewClass")。将类作为参数传递给函数,这样每个人都只会切换它应该做的事情。

于 2012-12-21T14:40:43.830 回答