2012-12-27 96 views
1

请帮我找到这个问题throw new Error(“语法错误,无法识别的表达式:”msg);

Error: Syntax error, unrecognized expression: #save_property_#{result.id} throw new Error("Syntax error, unrecognized expression: " msg);

home.js:

$(".save_prop").click(function(){ 
    $('#save_property_#{result.id}').slideToggle(); 
    return false; 
}); 

view.html.erb

<div id="save_property_<%= result.id %>" style="background : #ececef; width :500px; height:100px; display:none;"> 
<% if (user_signed_in? || current_twitter_user || current_fb_user) %> 
    property saved 
<% else %> 
    <%= link_to "Sign in /", user_session_path %> 
    <%= link_to "Sign Up", new_user_registration_path %> 
    to save the property 
<% end %> 
</div> 
+0

选择'#save_property _#{result.id}'的问题,这不是一个有效的jQuery选择。您可能需要执行DOM遍历来查找与被单击的'.save_prop'元素对应的'#save_property_XXX'元素。你需要展示更多的HTML,以便我们看到它们是如何相关的。 – Barmar

回答

-1
$('#save_property_result.id').slideToggle(); 

帮我解决问题

0

更换

$('#save_property_#{result.id}').slideToggle(); 

$('#save_property_<%=result.id%>').slideToggle(); 

,并从home.js更改文件名home.js.erb

+0

同样的错误它不能正常工作 –

+0

是否出现错误“$('#save_property _ <%= result.id%>')。slideToggle();”这条线? – shweta

+0

这条线没有错误。我认为错误来自视图div。我的功能正在按照说明进行工作。 –

0

关键是在你的文件的名字 - home.js 它不是ERB或任何其他轨道模板文件。它是一个独立的JavaScript文件,它不知道rails语法或任何或后端对象。它在客户端和服务器上进行编译,并将其“原样”提供给浏览器。

您必须将该脚本放入erb文件中才能像这样工作。

+0

感谢您的回复。但是,将home.js更改为home.js.erb后仍然无法正常工作 –

+0

它绝不会以这种方式工作:)将您的脚本代码放入您的html.erb文件中 – Phobos98

相关问题