Javascript 试图在rails中隐藏一组具有div id的文本
好吧,我真的把这件事简化了,看看是怎么回事。我在app/views/tasks/_form.html.erb文件中内联了所有这些内容,因此rails查找js应该不会有任何问题 我有一个按钮Javascript 试图在rails中隐藏一组具有div id的文本,javascript,ruby-on-rails,Javascript,Ruby On Rails,好吧,我真的把这件事简化了,看看是怎么回事。我在app/views/tasks/_form.html.erb文件中内联了所有这些内容,因此rails查找js应该不会有任何问题 我有一个按钮 <input type=button value="toggle foo" onclick="showHide('toDate');"> 在我的部门 <div id="toDate"> To Date <%= text_field_tag "to_date
<input type=button value="toggle foo" onclick="showHide('toDate');">
在我的部门
<div id="toDate">
To Date
<%= text_field_tag "to_date" %>
</br>
Days to Exclude
<% Date::DAYNAMES.each_with_index do |day_name, wday| %>
<% if day_name == "Sunday" || day_name == "Saturday" %>
<%= check_box_tag "ignored_days[]", wday, true %>
<% else %>
<%= check_box_tag "ignored_days[]", wday %>
<% end %>
<%= day_name %>
<% end %>
</div>
迄今为止
排除天数
然后js
<script language="javascript" type="text/javascript">
function showHide(elementId) {
if (document.getElementById) {
var element = document.getElementById(elementId);
if (element.style.visibility == 'hidden') {
element.style.visibility = 'visible';
} else if (element.style.visibility == 'visible') {
element.style.visibility = 'hidden';
}
}
}
</script>
函数showHide(elementId){
if(document.getElementById){
var element=document.getElementById(elementId);
if(element.style.visibility==“hidden”){
element.style.visibility='visible';
}else if(element.style.visibility==“可见”){
element.style.visibility='hidden';
}
}
}
想法?您是否包括jQuery
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
来源:您必须在呈现HTML后执行代码,您可以通过执行以下操作来实现:
$(document).ready(function(){
$('#toDate').hide();
});
确保jQuery和资产文件都导入到布局中。如果您确定包含jQuery,请确保在就绪块上的jQuery文档中运行代码,如下所示:
$(function(){
$('#toDate').hide();
});
还请注意,rails的新版本包括TurboLink,这部分中断了jQuery的document.ready事件。为了避免这种情况,您可以拦截turbolinks事件或包括jquery.turbolinks,如下所述:I have//=require jquery//=require jquery\u ujs in application.js何时调用hide?绑定到其他地方,点击文档准备好了吗?能否共享表示包含javascript库和jquery的代码片段?我在应用程序中有//=require jquery//=require jquery_ujs。jsNope…不起作用。我能够添加警报(“测试”);我可以看到警报,所以我知道JS正在工作。控制台中也没有错误。
$(function(){
$('#toDate').hide();
});