0

如何在fancybox中解决这个问题?

Uncaught TypeError: Object #<Object> has no method 'fancybox' localhost/:74
(anonymous function) http://localhost/:74
o.extend.ready.o.readyList jquery.min.js:19
o.extend.each jquery.min.js:12
o.extend.ready jquery.min.js:19
o.each.o.fn.(anonymous function)

这是header.php中的代码我不知道哪里有问题!我尝试使用 simplemodal 但不工作!也许是tabslider的问题!我制作了所有写在fancybox网站上的东西。

<link rel="stylesheet" href="css/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('.slide-out-div').tabSlideOut({
                tabHandle: '.handle',
                pathToTabImage: 'img/handle-bg.png',
                imageHeight: '186px',
                imageWidth: '30px',
                tabLocation: 'left',
                speed: 300,
                action: 'click',
                topPos: '150px',
                leftPos: '20px',
                fixedPosition: false
            });
    });
    </script>
    <script type="text/javascript">
        $(function(){
            $('.add_site_right').tabSlideOut({
                tabHandle: '.handle_right',
                pathToTabImage: 'img/handle-bg.png',
                imageHeight: '186px',
                imageWidth: '30px',
                tabLocation: 'right',
                speed: 300,
                action: 'click',
                topPos: '150px',
                leftPos: '20px',
                fixedPosition: false
            });
    });
    </script>
    <script type="text/javascript">
            $(document).ready(function() {
                /*
                *   Examples - images
                */

                $("a#example1").fancybox();

                $("a#example2").fancybox({
                    'overlayShow'   : false,
                    'transitionIn'  : 'elastic',
                    'transitionOut' : 'elastic'
                });

                $("a#example3").fancybox({
                    'transitionIn'  : 'none',
                    'transitionOut' : 'none'    
                });

                $("a#example4").fancybox({
                    'opacity'       : true,
                    'overlayShow'   : false,
                    'transitionIn'  : 'elastic',
                    'transitionOut' : 'none'
                });

                $("a#example5").fancybox();

                $("a#example6").fancybox({
                    'titlePosition'     : 'outside',
                    'overlayColor'      : '#000',
                    'overlayOpacity'    : 0.9
                });

                $("a#example7").fancybox({
                    'titlePosition' : 'inside'
                });

                $("a#example8").fancybox({
                    'titlePosition' : 'over'
                });

                $("a[rel=example_group]").fancybox({
                    'transitionIn'      : 'none',
                    'transitionOut'     : 'none',
                    'titlePosition'     : 'over',
                    'titleFormat'       : function(title, currentArray, currentIndex, currentOpts) {
                        return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>';
                    }
                });

                /*
                *   Examples - various
                */

                $("#various1").fancybox({
                    'titlePosition'     : 'inside',
                    'transitionIn'      : 'none',
                    'transitionOut'     : 'none'
                });

                $("#various2").fancybox();

                $("#various3").fancybox({
                    'width'             : '75%',
                    'height'            : '75%',
                    'autoScale'         : false,
                    'transitionIn'      : 'none',
                    'transitionOut'     : 'none',
                    'type'              : 'iframe'
                });

                $("#various4").fancybox({
                    'padding'           : 0,
                    'autoScale'         : false,
                    'transitionIn'      : 'none',
                    'transitionOut'     : 'none'
                });
            });
        </script>
4

2 回答 2

3

您的网站adzire.com会引发 javascript 错误,从而导致您的一些脚本(包括 fancybox)失败。您需要稍微调整一下代码:

首先,您只需要一个 jQuery 实例(最好是最新版本),到目前为止您有 3 个(1.4、1.6.2 和 1.7.2)。我猜你应该删除 v1.4 和 1.6.2(一些插件包括一个副本 jQuery,但这并不意味着你需要它们。)还要确保在任何其他脚本或 jQuery 插件之前加载 jQuery。

其次,与 jQuery 一样,您只需要任何 jQuery 插件的单个实例。您正在加载 jQuery UI 1.8.21 两次...删除一个。我猜是因为你在不同版本的 jQuery 之后加载它们,它会创建这些错误:

Timestamp: 22/06/2012 11:35:54 AM
Error: $(".cont .wrapper .block select.styled").select_skin is not a function
Source File: http://www.adzire.com/js/main.js
Line: 6

Timestamp: 22/06/2012 11:36:03 AM
Error: detailsBox is not defined
Source File: http://www.adzire.com/
Line: 115

稍微清理一下可能会解决您的问题,包括fancybox问题。

于 2012-06-22T18:37:58.187 回答
3

您需要在 jquery 之后包含 fancybox 脚本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.fancybox-1.3.4.pack.js"></script>
于 2012-06-22T11:44:53.560 回答