1

我正在将 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 ) 周围的双引号,那么一切都会无缝运行。

有没有人有什么建议。

4

0 回答 0