如何使用ajax包含Sinatra的javascript文件

时间:2014-01-05 04:27:46

标签: javascript ajax sinatra

注意:当我不使用ajax时,这很好用。我有苗条和haml的相同行为。以下是使用ajax和Sinatra

source

我正在尝试在使用ajax时使用sinatra创建的页面中运行一些javascript。请参阅下面的haml示例。这很好用。有什么方法可以使用包含javascript的文件,而不是下面的警告声明,即。使用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。

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

1 个答案:

答案 0 :(得分:0)

请注意您的输出

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

实际上并不是你想要的。你真正想要的可能是更像这样的东西:

<script src="about.js" />

为了获得类似的东西,你需要在HAML中添加src属性作为属性,如下所示:

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

另一个问题是你的jquery。它应该是$('#msg').load,带#符号,因为这是div的id。