1

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 ) を囲む二重引用符を削除するだけで、すべてがシームレスに機能します。

誰にも提案はありますか。

4

0 に答える 0