如何解决Rails 3,在html区域标签上使用UJS
| 当用户单击图像的区域时,我想触发并向服务器发出ajax请求。有没有简单的方法来实现此a-la Rails 3 UJS?类似于link_to ...,:remote => true? 我尝试了以下代码:#post_bar
=image_tag \'post_bar_270x57.png\',:usemap=>\'#add_post\'
%map{:name=>\"add_post\"}
%area{:shape=>\"rect\",:coords=>\"40,4,86,50\",:href=>new_message_path,:\'data-remote\'=>\'true\',:title=>\"Message\"}
但是添加的数据远程属性不起作用。
谢谢你的帮助。
解决方法
在尝试了几件事之后,我得出结论,最简单的方法是在png顶部有一个HTML锚元素,我可以简单地将link_to辅助器与:remote => true一起使用。
我花了不到10分钟的时间就能完成所有工作。
编辑:这是我的haml文件的代码形式(在生产中,我删除了map元素)
#post_bar
=image_tag \'post_bar_270x57.png\',:usemap=>\'#add_post\'
%map{:name=>\"add_post\"}
%area{:shape=>\"rect\",:coords=>\"40,4,86,50\",:href=>new_message_path,:title=>\"Message\"}
%area{:shape=>\"rect\",:coords=>\"100,146,:title=>\"Reminder(140 chars)\"}
#post_message_link
=link_to \"\",new_message_path,:remote=>true
和CSS
#post_message_link a{
position: absolute;
top: 0px;
left: 40px;
width: 45px;
height: 50px;
display: block;
z-index: 100;
}
,在jquery-rails gem(使用\'bundle show jquery-rails \'找到的路径)中,在vendor / assets / javascripts下有一个jquery-ujs的javascript文件。
在第51行,您可以看到以下内容:
// Link elements bound by jquery-ujs
linkClickSelector: \'a[data-confirm],a[data-method],a[data-remote],a[data-disable-with]\'
我发现在该行中添加区域标签可以使您像使用普通链接一样使用UJS。
理想情况下,您可以通过添加另一个变量来使代码更好一些,但是由于这只是一个hack,因此我将其添加到了现有变量中。
// Link elements bound by jquery-ujs
linkClickSelector: \'a[data-confirm],a[data-disable-with]\',\'area[data-confirm]\',\'area[data-method]\',\'area[data-remote]\',
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。