2016-08-14 49 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