2014-01-05 11 views
0

注意:當我不使用ajax時,此工作正常。我有苗條和哈姆相同的行爲。這裏是與Sinatra一起使用ajax的source如何使用ajax包含Sinatra的JavaScript文件

我想在使用ajax時使用sinatra創建的頁面中運行一些javascript。使用下面的haml參見示例。這工作正常。有什麼辦法可以使用包含javascript的文件,而不是下面的alert語句,即,。使用alert.js

@@testjavascript 
%p #{@time} 
:javascript 
    alert("Hello world"); 

以下只是給出了另一種方法的其他背景。 當我嘗試使用腳本語句時,腳本被嵌入到我的html元素中。這是我在做什麼:

我正在使用right.js。我添加此事件處理程序:

"#testscript".onClick(function(event) { 
    event.stop(); 
    $('msg').load("/testscript"); 
}); 

和HAML:

@@testscript 
%p #{@time} 
%script src="about.js" 

當我做了p元素和腳本元素嵌入與股利。

<div id="msg"> 
    <p>The time is 2014-01-05 12:21:39 +0800</p> 
    <script> 
    src="about.js" 
    </script> 

回答

0

注意,您的

<script> 
    src="about.js" 
</script> 

輸出實際上不是,你可能想要的東西。你真正想要的可能是更多的東西是這樣的:

<script src="about.js" /> 

爲了得到類似的東西,你需要將src屬性添加爲HAML的屬性,就像這樣:

%p #{@time} 
%script{:src => "about.js"} 

另一個問題是你的jQuery。它應該是$('#msg').load,帶#號,因爲那是div的id。

+0

我嘗試使用src的屬性,但在html中得到相同的結果。 和之間有什麼區別(在html中)? javascript語法實際上是正確的 - 它由right.js支持。不知道我是否可以創建一個類似jsfiddle的樣本 – nilanjan

相關問題