无法选择 link_to 标记作为 jquery 选择器 Rails
Posted
技术标签:
【中文标题】无法选择 link_to 标记作为 jquery 选择器 Rails【英文标题】:Can't select link_to tag as jquery selector Rails 【发布时间】:2016-11-22 18:56:38 【问题描述】:我是一名初学者 Rails 开发人员。我得到了这个带有“cmets_link”类的link_to标签
%h2= link_to pluralize(@recipe.comments.count, "Comment"), "#", class: "comments_link , btn btn-success"
现在,我在 application.js 中写道
$(document).ready(function()
$(".comments_link").click(function()
$(".section").toggle();
);
)
这段代码的问题是,无论我为点击事件选择什么元素,它都能正常工作。但是当我使用.comments_link
类时,它不起作用。为什么会这样?
除了link_to
标签之外的任何东西都可以作为事件监听器。我需要向它添加某种代码吗?
顺便说一句,我做了相反的尝试,但它确实有效。当我单击该部分时,它会切换链接。但是链接不能是事件监听器。
$(document).ready(function()
$(".section").click(function()
$(".comments_link").toggle();
);
); <-- this one worked. I cant use ".comments_link" as event listener.
【问题讨论】:
您的班级中有一个“,”。 为了确定,我删除了 " , btn btn-default" 部分。但是没有用。 我想看看生成的html。 切换 您为其显示 haml 的链接应包含文本“评论”或“评论” - 再试一次。 【参考方案1】:您在类名中有一个逗号,我认为这会使类名无效。检查开发人员工具以检查元素以查看 .comment_link
是否实际存在。如果不是,请删除逗号并重试
【讨论】:
nope.comma 也没有影响它。这是一个奇怪的错误。 那么你已经验证了元素上的类名是正确的? 问题似乎出在 HTML 上。你能发布 HTML 输出吗 Html 或页面根本没有改变。它刷新页面,我猜是发出请求但没有做任何回报。当我按 F12 然后单击链接时,来源根本没有改变。 我的意思是显示页面加载时生成的 HTML【参考方案2】:假设这是 turbolinks 的问题,您可以通过阻止事件处理程序中单击的默认操作来解决此问题(无论如何这是个好主意):
$(document).ready(function()
$(".comments_link").click(function(e)
e.preventDefault();
$(".section").toggle();
);
)
【讨论】:
谢谢。终于解决了!但是每次我将jquery添加到链接时我都需要这样做还是有更具体的方法?再次感谢您! 如果您希望链接不像链接,那么这是一个好主意。您可以对所有链接执行此操作,例如。所有以"#"
作为href 的链接,例如$("a[href='#']").click( function(e) e.preventDefault() )
- 但我认为最好是明确的并在每个事件处理程序中都有。
好的。再次感谢。你节省了时间:)
不要忘记接受/投票 - 这里有很多很好的努力可以帮助您。
喜欢不赞成投票的行为,尽管@HarunTuncay 评论说这是解决方法。三氯苯酚以上是关于无法选择 link_to 标记作为 jquery 选择器 Rails的主要内容,如果未能解决你的问题,请参考以下文章
Rails 3 - link_to 使用 jquery ajax 调用部分