注意:当我不使用ajax时,这工作正常。 我对苗条和哈姆也有同样的行为。这是将ajax与Sinatra一起使用的来源
我正在尝试在使用 ajax 时使用 sinatra 创建的页面中运行一些 javascript。 请参阅下面的使用 haml 的示例。 这工作正常。 有什么方法可以使用包含javascript的文件,而不是下面的alert语句,即。使用警报.js
@@testjavascript
%p #{@time}
:javascript
alert("Hello world");
下面只是为了提供有关替代方法的其他背景信息。当我尝试使用脚本语句时,脚本嵌入到我的 html 元素中。 这是我正在做的事情:
我用的是右.js。 我添加此事件处理程序:
"#testscript".onClick(function(event) {
event.stop();
$('msg').load("/testscript");
});
和哈姆尔:
@@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>
请注意,您的输出
<script>
src="about.js"
</script>
实际上不是您可能想要的。你真正想要的可能更像这样:
<script src="about.js" />
为了获得类似的东西,您需要将 src
属性添加为 HAML 中的属性,如下所示:
%p #{@time}
%script{:src => "about.js"}
另一个问题是你的jquery。它应该是 $('#msg').load
,带有 # 符号,因为那是div 的 id。