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,4,146,50\", :href=>new_message_path, :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-method], a[data-remote], a[data-disable-with]\', \'area[data-confirm]\', \'area[data-method]\', \'area[data-remote]\',
    

要回复问题请先登录注册