我正在使用 Sinatra 文档中提到的部分辅助模块。当我在部分中添加 JavaScript 时,它会准确地放置在 HTML 输出中我放置的位置。但是有一个新的js/jsquery--1.7.js/eval/seq/[1](array)
在脚本 block 中(我可以从 firebug 中看到这一点),这相当于我在部分文件中放入的内容,并且这也得到了评估,因此事件再次被触发。
假设您在部分中放置一个警报('helloworld') - 它会被触发两次。发生了什么以及如何避免这种情况?
最佳答案
这个答案可能会好得多,但您必须发布一些有关如何使用部分的示例代码(按照 @summea 4 天前的要求)。
您的问题听起来像是您看到放置在部分中的 JavaScript 代码在页面上渲染了两次,一次在您放置它的 html 中,一次在 Firebug 中(“js/jsquery-1.7.js/eval/seq/1”)。
确保您只在页面上渲染该特定部分一次,否则您的 JavaScript 将触发多次(因为它在页面上多次出现)。
换句话说:
<%= render "myPartialWithJavaScript" %>
<h1>My Page</h1>
<p>Welcome to my page!</p>
很好并且:
<%= render "myPartialWithJavaScript" %>
<h1>My Page</h1>
<p>Welcome to my page!</p>
<%= render "myPartialWithJavaScript" %>
将导致您的 JavaScript 被执行多次。
关于jquery - Sinatra - 如何在部分中添加 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058432/