2016-10-04 124 views
0

我正在使用cratejoy網站,我的客戶需要一種模式才能在設定的時間後彈出。我加入了模態,當我用這個正常工作:延遲加載後加載Bootstrap模式不起作用

$('#myModal').modal('show'); 

但是當我嘗試使用這兩種答案來自this page,它獲得了遺漏的類型錯誤:$(...)模式是不功能錯誤,模式不會彈出。你可以看到它不起作用here

+0

你是否也有引導。 js文件放在你的'html'上。此外,您需要將此腳本放在頁面末尾,並將其包裝在一個$(document).ready(function(){}) – Franco

+0

中,然後將其包裝在它中,但仍然無法使用。而且,如果我不使用setTimeout(),無論是否包含它,模式都會顯示出來。 –

回答

1

你的jQuery的多個版本加載

除了與它自己的腳本標記您的main.js文件還包括其顯而易見的版本。

由於它在bootstrap.js之後加載,它將覆蓋整個jQuery對象並刪除對原始版本的引導。這就是爲什麼你會得到顯示的錯誤

選擇你想要使用哪個版本的jQuery並刪除其他。

使所選的選項

+0

我不知道cratejoy爲什麼這麼做 - 我無法刪除任何這些jQuery鏈接,也不會拋出更多錯誤。看起來我不會這樣做。 –

+0

規則很簡單... jquery必須在引導之前加載插件,並且任何使用jquery的代碼都必須在該集合之後加載 – charlietfl

1

首先你需要有鏈接到你的頁面bootstrap.js和jQuery後加載後肯定boostrap.js負荷。

其次你必須把在腳本代碼的腳本結束body標籤

$(document).ready(function(){ 
    $('#myModal').modal('show'); 
}); 

之前爲了耽誤你可以做到這一點的模式:

setTimeout(function(){ 
    $('#myModal').modal('show'); 
}, 5000) 
+0

setTimeout中的排字錯誤 – charlietfl

+0

@charlietfl Woops。感謝:) – Franco

+0

即使我嘗試setTimeout也沒有工作 –