我正在努力将jquery无页面插件与rails应用程序集成。当我写出javascript时,无页面插件可以无缝地工作。问题在于尝试在完成后发布一个javascript方法。我想要完成的是有一个帮助方法来生成它,但它使用我的回调方法引用javascript,然后在javascript中生成错误
Uncaught TypeError: Object reloadMasonry has no method 'call'
这是辅助方法代码
def pageless(total_pages, url=nil, container=nil) opts = {
:totalPages => total_pages,
:url => url,
:loaderMsg => 'Loading more results',
:loaderImage => image_path("load.gif"),
:complete => "reloadMasonry"
}
container && opts[:container] ||= container
javascript_tag("$('#masonry-container').pageless(#{opts.to_json});")
end
这是生成的javascript代码
<script type="text/javascript">
//<![CDATA[
$('#masonry-container').pageless({"totalPages":3,
"url":"/articles",
"loaderMsg":"Loading more results",
"loaderImage":"/assets/load.gif",
"complete":"reloadMasonry"});
//]]>
</script>
javascript导致在reloadMasonry回调函数
周围引用reloadMasonry = function(){
$('#masonry-container').masonry('reload');
}
如果我复制完全生成的javascript,并简单地删除javascript回调方法(reloadMasonry)的双引号,在这种情况下,一切都可以无缝地工作。
有没有人有任何建议。