Rails ajax jquery问题

好我有这个问题我正在尝试使用Jquery加载部分替换列出的对象。

index.html.erb

<div class="style_image_" > 

loadshow:

 $(function() { $(".style_image_ a").click(function() { $(".style_image_").html("loading... ") $(".style_image_").html("") $.get(this.href, null, null, "html"); return false; }); }); 

_show.html.erb:

  

我收到这个错误:

 missing ) after argument list [Break on this error] $(".style_image_").htm...scape_javascript(render("show")) %>")\n 

我的代码在这里有两个问题,第一个是click函数没有定位.style_image _ …. ie(.style_image_42)如果我用42而不是_style.id替换css目标点击目标有效; 为什么是这样?

无论是否有此更改,_show partial都不会呈现,并且会给出上面的错误。

使用Javascript并不是那么好,任何帮助都会很棒!

PS

我真正想要的效果就像其中一个超酷的货物主题: http : //cargocollective.com/publikspace

谢谢丹!

alt text http://s3.amazonaws.com/data.tumblr.com/tumblr_kzu1cnOUUs1qbto6oo1_1280.png?AWSAccessKeyId=0RYTHV9YYQ4W5Q3HQMG2&Expires=1269597925&Signature=XuwwBhKKCKu3FWGpmqXmBqwxzS0%3D

当然,你可以在一个javascript文件中有ERB代码,将它命名为xxxx.js.erb,你可以访问它。

看看这个链接 ,它显示了如何通过简单地向它们添加类来“ajaxify”链接的一个很好的例子。 执行此操作后,您可以对链接进行分类,并创建一个.js.erb文件,该文件将包含成功调用的javascript(包括erb代码)。 如果你也需要访问class_id,你现在也拥有了对象的id。 id =“yourobj _ <%= @ yourobj.id%>”


更新 javascript失败的原因是因为你需要在抛出错误的行中转义引号,如下所示:

 $(".style_image_<%= style.id %>").html("<%= escape_javascript(render(\"show\")) %>"); 

或者只使用单引号,如下所示:

 $(".style_image_<%= style.id %>").html('%= escape_javascript(render("show")) %>'); 

这不起作用的原因是因为你不能在javascript文件中使用ERB代码。 Rails不会评估javascript文件中<%%>之间的任何内容。

我建议使用AJAX加载图像,或者只是将它们放在HTML中,并使用jQuery根据需要显示或隐藏它们。

仍然不确定为什么我的js.erb文件不理解<%= style.id%>,也许这不是在这里做的事情。

我有两个解决这个问题的方法:

  1. 在控制器中编写javascript并使用link_to_remote。

  2. 不引人注意地将链接路径加载到链接的DIV:

Image_tag链接如上!

在我的Application.js文件中

 $(function() { $(".style_image a").live('click', function(event) { $(this).closest(".style_teaser").load(this.href + " #show_photo"); return false; }); }); 

使用此方法,如果javascript处于关闭链接,则会将您带到对象的显示路径。

谢谢Nick Craver让我对此提出的建议!