我已经在这几个小时,但它只是不工作。我正在尝试使用Scriptaculous'Effects库让ToggleJS工作。具体来说,例如:http://wiseheartdesign.com/page_attachments/0000/0075/demo.html。
我使用名为new.html的纯html文件使其工作得非常漂亮。然后我将它转换为new.html.erb,这样我就可以将一些动画合并到我的Rails项目中,它就停止了工作!
我尝试了html和ruby javascript标签但都没有工作,例如:
<%= javascript_include_tag "application", "prototype", "effects", "lowpro", "toggle" %>
页面正文显示在浏览器上,但没有动画。我确保我的javascript文件与demo相同(另外,html文件仍在使用它们)。你知道我的.erb文件可能存在什么问题吗?
我正在使用的html示例:
<h3>Toggle.LinkBehavior</h3>
<div class="expand_me" id="one">Expanded!</div>
<p>
<a class="toggle" href="#one" rel="toggle[one]">Expand</a>
</p>
<div class="expand_me" id="two">Expanded! 1</div>
<div class="expand_me" id="three">Expanded! 2</div>
<p>
<a class="toggle" href="#two" rel="toggle[two,three]">Expand even more</a>
</p>
#Application.js
Event.addBehavior({
'a.toggle': Toggle.LinkBehavior(),
'a.inverted_toggle': Toggle.LinkBehavior({invert: true}),
'a.open': Toggle.LinkBehavior({
effect: 'blind',
onLoad: function(link) {
this.toggle();
},
beforeToggle: function(link) {
link.innerHTML = (link.innerHTML == "Open") ? "Opening..." : "Closing...";
},
afterToggle: function(link) {
link.innerHTML = (link.innerHTML == "Opening...") ? "Close" : "Open";
}
}),
'form input.checkbox.toggle': Toggle.CheckboxBehavior(),
'form input.checkbox.inverted_toggle': Toggle.CheckboxBehavior({invert: true}),
'form .radio_group.toggle': Toggle.RadioGroupBehavior({effect: 'blind'}),
'form select.toggle': Toggle.SelectBehavior()
});
Eimantas,我是一个全新的人。我在html doc中添加了以下内容,但它不起作用:
<script type="text/javascript">
window.onload = Event.addBehavior
</script>
这是你的意思,还是能告诉我在.html.erb文件中需要写什么代码?
答案 0 :(得分:2)
你可以为javascript文件粘贴生成的HTML吗?
我认为您的toggle.js
的加载时间晚于application.js
,因此如果application.js
具有切换效果的所有挂钩代码(window.onload...
),则会因为库而失败本身尚未加载。
更新:
以下是将Event.addBehavior
放入窗口加载的方法:
<script type="text/javascripts">
window.onload = function() {
Event.addBehavior({
// all params and code.
});
}
</script>
您应该检查原型样式window.onload
函数的原型文档。