Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建关闭jQuery颜色框的全局函数?_Javascript_Jquery_Colorbox - Fatal编程技术网

Javascript 如何创建关闭jQuery颜色框的全局函数?

Javascript 如何创建关闭jQuery颜色框的全局函数?,javascript,jquery,colorbox,Javascript,Jquery,Colorbox,首先,我使用的jQuery colorbox插件到目前为止运行良好,但是我想用一个按钮关闭colorbox。不幸的是,我不能仅仅通过使用jQuery选择按钮的ID来触发该按钮上的点击事件,而不是该按钮必须调用名为closepan()的javascript函数(不幸的是,这种行为对我来说是强制性的) 我试图创建函数 closepan() { $.colorbox.close(); } 第一个案例:在 $(document).ready(function(){...}); 但后来我得到了一个错

首先,我使用的jQuery colorbox插件到目前为止运行良好,但是我想用一个按钮关闭colorbox。不幸的是,我不能仅仅通过使用jQuery选择按钮的ID来触发该按钮上的点击事件,而不是该按钮必须调用名为closepan()的javascript函数(不幸的是,这种行为对我来说是强制性的)

我试图创建函数

closepan() {
$.colorbox.close();
}
第一个案例:在

$(document).ready(function(){...}); 
但后来我得到了一个错误closepan是未定义的

第二种情况:在

$(document).ready(function(){...}); 
但是,它的颜色盒方法是未定义的

我在stackoverflow.com上找到了几个关于这个话题的解决方案,花了无数个小时,终于放弃了!我不知道该怎么做

换句话说,如何创建一个名为closepan()的函数,该函数可以执行$.colorbox.close();当我的按钮在全球范围内可用时

function closepan() {
    if($.colorbox) {
        $.colorbox.close();
    }
}

但是,在有人单击您的按钮时,所有外部脚本都应已加载,因此无需进行检查……

无论您在何处创建变量或函数,如果您在
窗口中创建它,它都将全局可用

window.closepan = function() {
   // hello there
}

不要忘记将关键字
函数
放在声明前面

function closepan() {
    $.colorbox.close();
}

工作

它不工作,因为要么我们在jQuery document ready外部创建此函数,然后无法识别$.colorbox.close(),要么我们在jQuery document ready内部创建此函数,然后该函数对“我的按钮”不可用!要定义函数,还需要声明函数内部调用的任何内容。除此之外,
$
$.colorbox
在dom就绪事件函数之外也可用。是的,非常感谢。通过使用您的建议在jQuery文档中创建函数,它可以完美地工作。一个月前我了解了
窗口。
技巧。在jQuery
.ready
@sidou内外工作时,感觉非常棒。您可能需要阅读一下。实际上不需要在
文档中创建它。ready
,如果没有,您的代码通常会更干净、更易于维护。@Basic有道理,但更干净、更易于维护是主观的。@Basic,我已经读过了。看我对你答案的评论。不,你不明白。首先,正如我已经说过的,我不能使用click事件,因为我必须使用按钮调用的closepan()函数(类似于“javascript:closepan()”)。第二您需要知道,此函数的唯一用途是使用colorbox close调用,而colorbox是一个jQuery插件,需要在jQuery环境中正常工作才能启动,因此它不像警告“hello world”那样不需要任何jQuery先决条件才能运行。
$
jQuery变量的作用域是全局的-您可以从页面上的任何位置引用它。我确实阅读了关于函数的需求,但假设问题出在方法的定义上。我已经更新了JSLint,以您定义和演示如何直接引用jQuery或使用
document.ready()
中设置的变量的方式调用函数-尽管在后一种情况下,您最好选择链接答案中提到的闭包。这是我在不实施面板的情况下所能做到的最接近的