【问题标题】:How to include a javascript file with Sinatra using ajax如何使用 ajax 在 Sinatra 中包含 javascript 文件
【发布时间】:2014-01-06 10:53:13
【问题描述】:

注意:当我不使用 ajax 时,这可以正常工作。我对 slim 和 haml 有同样的行为。这是在 Sinatra 中使用 ajax 的 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");
});

还有哈姆:

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

当我这样做时,p 元素和 script 元素将嵌入到 div 中。

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

【问题讨论】:

    标签: javascript ajax sinatra


    【解决方案1】:

    注意你的输出

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

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

    <script src="about.js" />
    

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

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

    另一个问题是您的 jquery。应该是$('#msg').load,加上#号,因为那是div的id。

    【讨论】:

    • 我尝试使用 src 的属性,但在 html 中得到相同的结果。 和 /> 之间有什么区别(在 html 中)? javascript 语法实际上是正确的 - right.js 支持它。不确定我是否可以创建类似 jsfiddle 的示例
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2012-02-19
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多