3

我陷入了使用 ajax 将航路点注入回 dom 的情况。这些新元素不会触发在 dom 更改之前创建的现有航路点。

有没有办法使用带有航点的 jquerys On 事件?

我正在使用航点 2.0.2 http://imakewebthings.com/jquery-waypoints/ 我正在尝试做的一个示例是,重新插入航点,该航点仍然可以使用应用于 .waypoint 指定的元素的航点方法

我遇到的问题是,在我插入要作为航点的新 div 后,它们不会触发。

当您在 dom 加载一次后动态插入一个附加了 click 函数的元素时,会发生类似的问题,您不能使用 .click,而是使用 .on("click, "element", function()。

使其工作的一种方法是使用以下方法在航路点内重新创建航路点:

(".nacho").waypoint(函数(方向)

除了这在我的情况下不起作用的原因是所有先前触发或滚动过去的航点都会触发。

<div class="nacho">

</div>
<script>
$(document).ready(function(){
    $("body").on("waypoint", ".nacho", function(event){

    //alert("test");

    });

    $(".nacho").waypoint(function(direction){
    alert("test");
        $("body").append("<div class=nacho>html to force the window down</div>");
    } , { offset: "bottom-in-view" });


});
</script>

我尝试将航点 nacho 重新插入 dom,这样做之后,即使在此 ON 的情况下,航点也不会触发。

4

1 回答 1

4

更新 DOM 后,发出刷新:

$.waypoints('refresh')

文档:http: //imakewebthings.com/jquery-waypoints/#docs

$.waypoints('刷新')

这将强制根据其偏移选项重新计算每个航点的触发点。每当调整窗口大小或添加新航点时,都会自动调用此方法。如果您的项目正在更改 DOM 或页面布局而没有执行这些操作之一,您可能需要手动调用它。

于 2013-04-16T15:57:27.407 回答