rails 3.x无页面回调方法

时间:2013-04-20 20:40:46

标签: ruby-on-rails-3 jquery-plugins

我正在努力将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)的双引号,在这种情况下,一切都可以无缝地工作。

有没有人有任何建议。

0 个答案:

没有答案