当前位置:  开发笔记 > 编程语言 > 正文

link_to方法和Rails中的单击事件

如何解决《link_to方法和Rails中的单击事件》经验,为你挑选了3个好方法。

如何创建此类型的链接:


link_to在Rails中使用方法?

我无法从Rails文档中找到它.



1> Ron DeVera..:

你可以使用link_to_function(在Rails 4.1中删除):

link_to_function 'My link with obtrusive JavaScript', 'alert("Oh no!")'

或者,如果您绝对需要使用link_to:

link_to 'Another link with obtrusive JavaScript', '#',
        :onclick => 'alert("Please no!")'

但是,将JavaScript直接放入生成的HTML中是非常突兀的,这是不好的做法.

相反,你的Rails代码应该是这样的:

link_to 'Link with unobtrusive JavaScript',
        '/actual/url/in/case/javascript/is/broken',
        :id => 'my-link'

假设你正在使用Prototype JS框架,那么JS在你的application.js:

$('my-link').observe('click', function (event) {
  alert('Hooray!');
  event.stop(); // Prevent link from following through to its given href
});

或者如果你正在使用jQuery:

$('#my-link').click(function (event) {
  alert('Hooray!');
  event.preventDefault(); // Prevent link from following its href
});

通过使用第三种技术,您可以保证链接将贯穿其他页面 - 如果JavaScript对用户不可用,则不会无声地失败.请记住,JS可能不可用,因为用户的互联网连接很差(例如,移动设备,公共wifi),用户或用户的系统管理员禁用它,或者发生了意外的JS错误(即开发人员错误).



2> Jim Morris..:

要跟进Ron的答案,如果使用JQuery并将其放在application.js或head部分,你需要将它包装在ready()部分......

$(document).ready(function() {
  $('#my-link').click(function(event){
    alert('Hooray!');
    event.preventDefault(); // Prevent link from following its href
  });
});


请注意,这可以缩短为`$(function(){...});`,它相当于`$(document).ready(function(){...});`

3> Alan Wang..:

只是用

=link_to "link", "javascript:function()"

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有