Jquery 如何将页面上的对话框显示为Rails JS响应?

Jquery 如何将页面上的对话框显示为Rails JS响应?,jquery,ruby-on-rails,jquery-plugins,Jquery,Ruby On Rails,Jquery Plugins,我正在使用jquery colorbox插件作为我的站点中的弹出/模式对话框解决方案。当我给客户端一个js响应时,我想打开一个弹出框。我在response1.js.erb中编写了以下代码 $.colorbox(); 我正确地从服务器获得响应,但在浏览器上执行响应时,firebug报告如下错误 $.colorbox() is not a function 我还能怎么做这项任务?请帮忙。当页面加载时,我所有相关的Java脚本(jquery、colorbox)都被正确加载(我检查了页面源html文

我正在使用jquery colorbox插件作为我的站点中的弹出/模式对话框解决方案。当我给客户端一个js响应时,我想打开一个弹出框。我在response1.js.erb中编写了以下代码

$.colorbox();
我正确地从服务器获得响应,但在浏览器上执行响应时,firebug报告如下错误

$.colorbox() is not a function

我还能怎么做这项任务?请帮忙。当页面加载时,我所有相关的Java脚本(jquery、colorbox)都被正确加载(我检查了页面源html文件)

这对我来说很有效,您正在使用
format.js
调用您的
page.js.erb
?当我使用
$.colorbox({html:'testing 123..

})时,我确实遇到了一个问题。
就在我的应用程序的文档ready中,说
$box
没有定义。不知道为什么。但就我从您有限的示例中看到的内容而言,它应该是有效的。

在调用
$.Colorbox()
之前,请确保已加载Colorbox JS文件。如果在将该函数添加到jQuery对象之前引用该函数,则该函数将不可用。您还应该确保
$
在您使用jQuery的上下文中引用它。如果它引用的是原型,那么您可能会得到那个错误。另外,如果您碰巧加载了两次jQuery,那么jQuery对象将丢失上次将jQuery包含在页面中之前加载的扩展。一些jQuery插件喜欢将jQuery包含在它们的小型或压缩发行版中——这是一种糟糕的形式——但是,它经常会导致这个问题。因此,确保您的库在已经包含jQuery之后不包含jQuery

确保
$
始终引用jQuery的最佳方法是将其包含在一个闭包中,如下所示:

(function($){
  // notice the $ argument of the anonymous function
  $('#dollarsign').is('.jQuery');
  // this last line executes the anonymous function and passes in jQuery as $
})(jQuery);