Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
jQuery初始化顺序_Jquery_Jquery Ui_Jquery Ui Accordion_Galleria - Fatal编程技术网

jQuery初始化顺序

jQuery初始化顺序,jquery,jquery-ui,jquery-ui-accordion,galleria,Jquery,Jquery Ui,Jquery Ui Accordion,Galleria,我正在构建一个页面,我想使用Galleria script()和的手风琴小部件隐藏不同类别的画廊缩略图。在初始化过程中,我按照两个脚本手册的建议编写了: <script type="text/javascript"> jQuery(function($) { $('ul.gallery').galleria({ insert: "#image" }); $("#thumbs").accordion

我正在构建一个页面,我想使用Galleria script()和的手风琴小部件隐藏不同类别的画廊缩略图。在初始化过程中,我按照两个脚本手册的建议编写了:

<script type="text/javascript">
        jQuery(function($) { 
        $('ul.gallery').galleria({
         insert: "#image"
        });

         $("#thumbs").accordion();

        });
</script>

jQuery(函数($){
$('ul.gallery')。凯丹广场({
插入:“图像”
});
$(“拇指”)。手风琴();
});
galleria()
函数创建缩略图并为其指定适当的大小。然后,
accordion()
函数指定其样式并折叠当前不可见的元素。在上面的代码中,由于零维,我遇到了一些缩略图不可见的问题

如果我在
galleria()
函数中为缩略图指定大小之前放置警报,我可以看到,对于accordion不可见页面中的图像,其容器在该点上的尺寸为零。这对我来说非常奇怪,因为我认为这些函数是连续执行的,并且在
galleria()
完成之前不会调用
accordion()

更奇怪的是,如果我把警报放在手风琴功能之前,那么一切都会按正确的顺序处理


很明显,我在这里面临着比赛条件。为什么会发生这种情况?我应该做些什么来保证有序的初始化序列?

这只是一个猜测,但我猜这与下载图像之前运行的脚本有关。这似乎可以解释为什么在使用accordion函数之前使用
alert()
。它使图像有机会加载

如果这是正确的,您将希望使用jQuery的
load()
事件处理程序来确保图像已完全加载


load()的文档:

我认为竞争条件可能是,一旦galleria添加了所有图像,它们可能还没有下载。这将导致accordian函数假定图像是零乘零的

添加警报之所以有效,是因为需要花费大量时间,在您关闭警报时,图像已下载

若要确定执行顺序,请查看firebug和console.log,而不要使用警报,因为警报不会像警报一样阻止脚本执行


关于你的主要问题,我想看看galleria是否提供了一些回调功能,以确保在继续之前下载所有图像

就这样!真丢脸,我自己都猜到了。缩略图大小不是在galleria()初始值设定项中设置的,而是在图像对象的load()事件处理程序中设置的。我在查galleria的资料时错过了。谢谢是的,就是这样,谢谢。我必须修补galleria的代码,从css而不是从周围的DOM计算拇指大小。非常感谢Firebug提示!我不知道console.log。是否有一种方法来打印文件、行和时间,而不是像C++中的行、文件等宏那样的日志?向您展示firebug的功能。另外,欢迎来到stackoverflow!