我正在开发我的第一个rails应用程序,并尝试通过单击页面中的另一个链接在我的视图中显示/隐藏特定的Web元素。以下是我的观点,
%p
= link_to 'Show additional details', "#", id: "secondary-link"
%table{:id => "secondary"}
%tr
%th Key
%th Value
where" secondary-link"是显示/隐藏我的表的链接。首先加载页面时,表格会被我的application.css.scss
中的以下行隐藏#secondary{
display: none;
}
另外,我在我的assets / javascripts / application.coffee中添加了以下脚本
@myFunction = (variable) ->
$(document).on "page:change", ->
$('#secondary-link').click ->
$('#secondary').toggle()
但是,当我点击页面中的链接时,表格未显示。但是,在我的控制台中,如果我输入" myFunction"我正在获得这个功能
ƒ (variable) {
return $(document).on("page:change", function() {
return $('#secondary-link').click(function() {
return $('#secondary').toggle();
});
});
}
我输入myFunction()时收到错误
Uncaught TypeError: Cannot read property 'on' of undefined
at myFunction (application.self-4e74630fd8894bca1e22a8d66c1d7ebfaa39edf4f40e058aae03fc788a9f6d94.js?body=1:3)
at <anonymous>:1:1
感谢您的帮助。
答案 0 :(得分:0)
我不知道为什么会出现这个问题,但我通过在我的application.js文件中直接使用jquery来修复它并删除了咖啡文件。我的js文件具有以下编码来处理事件。
$(document).ready(function() {
$('#secondary-link').click(function(event){
return $('#secondary').toggle();
});
});
我已停止并重新启动服务器,这很有效。