我正在使用对此JavaScript函数的调用提交表单:
function emailFriend(){
jQuery("form[name='comparisons']").attr("action", "/emailfriend/compare");
jQuery("form[name='comparisons']").bind('submit', function() {
jQuery.get(jQuery("form[name='comparisons']").attr("action"),
jQuery("form[name='comparisons']").serialize(),
function(data){ // send to colorbox
$.colorbox({ // this is where the error comes from
html: data,
open: true,
iframe: true // use iframe
});
},
"html");
});
jQuery("form[name='comparisons']").submit();
}
此表单打开位于/ emailfriend / compare的另一个表单。第二种形式是我试图在彩盒中弹出的形式。上面的代码用于打开表单,但它返回错误$.colorbox is not a function
,然后在同一窗口/选项卡中打开目标表单。
我正在使用Drupal 7并安装并启用了colorbox模块。当将颜色框用于链接,图像等时,颜色框方面在整个网站中起作用。
谁能告诉我我做错了什么?
答案 0 :(得分:-2)
为了避免与其他库的冲突,jQuery不再使用Drupal 7中的$
变量进行初始化(这在其他系统中也是常见做法,而不仅仅是Drupal)。您需要为$
变量提供上下文,或将$.colorbox
更改为jQuery.colorbox
:
(function($) {
function emailFriend(){
$("form[name='comparisons']").attr("action", "/emailfriend/compare");
$("form[name='comparisons']").bind('submit', function() {
$.get($("form[name='comparisons']").attr("action"),
$("form[name='comparisons']").serialize(),
function(data){ // send to colorbox
$.colorbox({ // this is where the error comes from
html: data,
open: true,
iframe: true // use iframe
});
},
"html");
});
$("form[name='comparisons']").submit();
}
})(jQuery);
或:
function emailFriend(){
jQuery("form[name='comparisons']").attr("action", "/emailfriend/compare");
jQuery("form[name='comparisons']").bind('submit', function() {
jQuery.get(jQuery("form[name='comparisons']").attr("action"),
jQuery("form[name='comparisons']").serialize(),
function(data){ // send to colorbox
jQuery.colorbox({ // this is where the error comes from
html: data,
open: true,
iframe: true // use iframe
});
},
"html");
});
jQuery("form[name='comparisons']").submit();
}
就个人而言,我只是使用第二种方式,因为你已经写出了代码: - )