2017-06-15 25 views
0

我试图使用Barba来实现平滑的页面过渡。这是我的代码添加一个新的页面时添加一些HTML。无法将HTML追加到JavaScript或jQuery中的某个元素中从函数内部执行

Barba.Dispatcher.on('newPageReady', function(currentStatus, oldStatus, container) { 
    console.log("I am In."); 
    $("#quick-share").append("Share Now!"); 
}); 

从开发者工具控制台的附加作品,但从这个功能里面,它没有。但是,console.log()语句正常工作没有任何问题。我也尝试过一种纯粹的JavaScript方式,但它在Barba函数中也不起作用。

document.getElementById("quick-share").innerHTML = "Share Now!"; 

有什么,我失踪?

谢谢。

+0

您的“#quick-share”元素是生成的标签,还是在加载页面开始时已经存在? – Kashkain

+0

你确定你正在查询的元素存在吗? – SamHH

+0

@Kashkain是的,它已经存在。 –

回答

0

其实与Barba.js当你做一个过渡,新内容将覆盖旧的,那就是我们可以在自己的How it works section看到:

5-一旦新的页面被加载,巴尔巴。 js解析新的HTML(采用.barba-container)并将新内容放在#barba-wrapper中的DOM上。

6-转换实例将负责隐藏旧容器,并显示新容器 。

7-转换完成后,旧容器从 DOM中删除。

所以你的问题是,调用$("#quick-share")时,在'newPageReady'事件,移除旧的内容,这样就不会与ID返回任何元素,这就是为什么你不能看到附加的文字。

您可以做的是在新容器中的transitionCompleted事件处理程序中重新创建此元素。