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