我正在将 jquery pageless 插件与 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 ) 周围的双引号,那么一切都会无缝运行。
有没有人有什么建议。