2016-08-14 116 views
1

我有几个例子如下。这的确有些神奇防止turbolinks 5加载某些<a></a>

<a href="#" id="add-item"> 
    <i class="fa fa-plus"></i> 
</a> 

而一些JS:像这样的,没有真正的HREF 链接

id = $('#watch-path-group').children().length + 1 
$('#watch-path-group').append '<input style="margin-top: 4px;" id=wp_"' + id + '" name=wp_"' + id + '" type="text" class="form-control" placeholder="New path...">' 

升级到turbolinks 5后的行为发生了变化。当我点击链接turbolinks步骤并重新加载页面,在这种情况下,新添加的元素消失...

据我所知,这可能是或多或少涡轮链接。取自github

Turbolinks拦截到同一域的链接的所有点击。当您点击符合条件的链接时,Turbolinks会阻止浏览器关注它。相反,Turbolinks使用History API更改浏览器的URL,使用XMLHttpRequest请求新页面,然后呈现HTML响应。

但是,我该如何完成我想要做的事情。我应该如何停止使用链接标签?

感谢

+0

需要明确的是:你要什么做turbolinks做它的事情后,运行第二块js代码? – yezzz

+0

@yezzz不...好吧不要这么想。加载页面,用户点击链接并运行js,应添加新元素。这就是我想要的。但是当点击链接时,元素会被添加,这就是turbolinks重新加载页面的时候...... – martin

+0

你是说在更新页面之前将输入追加到#watch-path-group中,而不是在更新页面之后? – yezzz

回答

1

望着文档,对某些环节禁用turbolinks,你需要data-turbolinks="false"属性添加到元素或任何祖先。

所以下面应该工作:

<a href="#" id="add-item" data-turbolinks="false"> 
    <i class="fa fa-plus"></i> 
</a> 

这当然假定自己的点击处理程序设置正确,你的ID是唯一的,等

+0

宾果!答对了!答对了! – martin