Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t选择link_标记为jquery选择器Rails_Javascript_Jquery_Ruby On Rails_Haml - Fatal编程技术网

Javascript Can';t选择link_标记为jquery选择器Rails

Javascript Can';t选择link_标记为jquery选择器Rails,javascript,jquery,ruby-on-rails,haml,Javascript,Jquery,Ruby On Rails,Haml,我是rails开发的初学者。我用“评论链接”类来标记这个链接 现在,我在application.js中写了 $(document).ready(function(){ $(".comments_link").click(function(){ $(".section").toggle(); }); }) 这段代码的问题是,无论我为click事件选择什么元素,它都可以工作。但是当我使用.comments\u link类

我是rails开发的初学者。我用“评论链接”类来标记这个链接

现在,我在application.js中写了

$(document).ready(function(){
  $(".comments_link").click(function(){
    $(".section").toggle();
  });                               
})
这段代码的问题是,无论我为click事件选择什么元素,它都可以工作。但是当我使用
.comments\u link
类时,它不起作用。为什么会这样

除了链接到标记之外的任何东西都可以用作事件侦听器。我需要添加一些代码吗

顺便说一句,我做了相反的尝试,它的工作。当我单击该部分时,它会切换链接。但是链接不能是事件侦听器

$(document).ready(function(){
  $(".section").click(function(){
    $(".comments_link").toggle();
  });                               
}); <-- this one worked. I cant use ".comments_link" as event listener.
$(文档).ready(函数(){
$(“.section”)。单击(函数(){
$(“.comments_link”).toggle();
});                               

}); 在类名中有一个逗号,我认为它会使类名无效。检查开发人员工具以检查元素是否实际存在
.comment\u link
。如果没有,请删除逗号并重试

假设这是TurboLink的问题,您可以通过阻止事件处理程序中单击的默认操作来解决此问题(无论如何,这是一个好主意):


你的类中有一个“,”。我删除了“,”btn btn default“部分只是为了确定。但是没有工作。我想看看生成的html。你显示haml的链接应该有文本“Comment”或“Comments”-再试一次。nope.comma也没有影响它。这是一个奇怪的错误。因此您已经验证了元素上的类名是否正确?问题似乎与HTML有关。你能发布HTML outputHtml吗?或者页面根本不改变。它刷新页面,我猜它会发出请求,但不会做任何回应。另外,当我按F12键,然后单击链接时,源代码一点也不改变。我的意思是只显示页面加载时生成的HTML谢谢。终于解决了!但是每次我向链接添加jquery时,我都需要这样做吗?还是有更具体的方法?再次感谢你!如果您希望链接的行为不像链接,那么这是一个好主意。您可以对所有链接执行此操作,例如,所有链接的href为
“#”
,如
$(“a[href=”#“])。单击(函数(e){e.preventDefault())
-但我认为最好是在每个事件处理程序中都明确显示出来。好的。再次感谢。你是一个节省时间的人:)别忘了接受/投票-这里有很多很好的努力来帮助你。我喜欢downvote操作,尽管@HarunTuncay评论说这是修复方法。特罗洛尔
$(document).ready(function(){
  $(".section").click(function(){
    $(".comments_link").toggle();
  });                               
}); <-- this one worked. I cant use ".comments_link" as event listener.
$(document).ready(function(){
  $(".comments_link").click(function(e){
    e.preventDefault();
    $(".section").toggle();
  });                               
})