Javascript 将简单的onclick js添加到rails

Javascript 将简单的onclick js添加到rails,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我的一个视图中有一个简单的div,我想单击它来隐藏页面上的另一个元素。我把它放在application.js中,但它没有任何作用。我放错地方了吗 function toggleNewPostForm { $('.new-post-btn').hide(); } 试试这样的 <div class="xyz">Click here!</div> 还要检查事件侦听器是否添加到文档就绪方法之后?i、 e $(function(){ $(".xyz").click

我的一个视图中有一个简单的div,我想单击它来隐藏页面上的另一个元素。我把它放在application.js中,但它没有任何作用。我放错地方了吗

function toggleNewPostForm {
    $('.new-post-btn').hide();
}

试试这样的

<div class="xyz">Click here!</div>
还要检查事件侦听器是否添加到文档就绪方法之后?i、 e

$(function(){
   $(".xyz").click(function(){
     $('.new-post-btn').hide();
   });
});

如果这是您仅有的js,则不会有单击行为。您必须告诉元素,即必须对单击事件作出反应

在application.js文件中尝试以下操作:

function toggleNewPostForm() {
    $('.new-post-btn').hide();
}

$(document).on('ready page:load', function(){
    $('.new-post-btn').on('click', function(){
        toggleNewPostForm();
    });
});
附言:正如RGraham所指出的,如果你定义了一个函数,你必须写参数paranthesis


p.p.S.:在RubyonRails中,您应该检查文档就绪处理程序中的'ready'和'page:load',因为RubyonRails默认使用“Turbolinks”-库。

使用
documentready
确保在从HTML中选择元素并调用内部函数之前加载了文档

function toggleNewPostForm(){
  $('.new-post-btn').hide();
};

$( document ).ready(function() {
  toggleNewPostForm();
});

问题是:单击时是否真的触发了函数(toggleNewPostForm?
Uncaught SyntaxError:意外标记{
是您应该在错误控制台中看到的。我太依赖webstorm了,当我切换到Sublize时,这种情况发生了。非常感谢!在ruby on rails中,您应该将“page:load”和“ready”作为文档就绪处理程序进行检查(因为Turbolinks…)。当然,如果有人使用Turbolinks(自rails 4以来默认使用Turbolinks)然后他应该检查page:load和ready事件这将产生语法错误,因为
函数{}()
不是有效的函数定义。。。
function toggleNewPostForm(){
  $('.new-post-btn').hide();
};

$( document ).ready(function() {
  toggleNewPostForm();
});