我陷入困境,我正在使用ajax将航点注入dom。这些新元素不会触发在dom改变之前创建的现有航点。
有没有办法在路标上使用jquerys On事件?
我正在使用航点2.0.2 http://imakewebthings.com/jquery-waypoints/ 我尝试做的一个示例案例是,重新检查仍然可以使用应用于.waypoint指定的元素的航路点方法的航路点
我遇到的问题是,在插入新的div作为航点后,它们不会触发。
当你在dom加载一次后动态插入一个附加了点击功能的元素时会发生类似的问题,你不能使用.click,你使用.on("点击," element",function()。
让这个工作的一种方法是使用以下方法重新创建航点内的航点:
(" .nacho&#34)。航点(函数(方向)
除了在我的情况下这不起作用的原因是所有先前触发或滚动的过去的路径都会触发。
<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,航路点也不会触发。
答案 0 :(得分:3)
更新DOM后,发出刷新:
$.waypoints('refresh')
文档:http://imakewebthings.com/jquery-waypoints/#docs
$。航点( '刷新')
这将强制根据其偏移选项重新计算每个航路点的触发点。每当调整窗口大小或添加新航点时,都会自动调用此方法。如果您的项目正在更改DOM或页面布局而不执行其中任何一项操作,则可能需要手动调用它。