未捕获的TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}没有方法'fancybox'

时间:2011-12-07 11:02:08

标签: php fancybox typeerror

我正在创建一个搜索页面,其中带有单个输入的表单结果将显示在Fancybox中。一切都很完美但如果我关闭Fancybox那么它将不会再次打开。使用调试器我发现错误阻止它显示:

  

未捕获TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}   没有方法'fancybox'

我正在使用的代码是:

Header / Jquery脚本:

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" src="includes/fancybox/jquery.fancybox.pack.js?v=2.0.3"></script>
<script type="text/javascript" src="includes/jquery.form.js"></script> 

<link rel="stylesheet" href="includes/fancybox/jquery.fancybox.css?v=2.0.3" type="text/css" media="screen" />
<link href="css/main.css" rel="stylesheet" type="text/css" />
<link href="css/search.css" rel="stylesheet" type="text/css" />

<script type="text/javascript">
    $(document).ready(function() {
        $(".submit").click(function() {
            $('#page_effect').fadeIn(500);
        }); 

        $(".form").ajaxForm( {
            success: function(responseText)
            {
                $.fancybox({
                    content     : responseText,
                    maxWidth    : 545,
                    maxHeight   : 560,
                    fitToView   : false,
                    autoSize    : false,
                    closeClick  : false,
                    openEffect  : 'fade',
                    closeEffect : 'fade'
                });
                $('#page_effect').fadeOut(200);
            }
        });
    });   
</script>   

形式:

        <form name="input" action="search.php" method="post" class="form">
        <input name="searchterms" class="input" type="text" />
        <input class="submit" type="submit" value="Zoek naar video!" />
    </form>

1 个答案:

答案 0 :(得分:2)

通过重写提交帖子表单的代码来解决问题。 这是解决这个问题的工作方法:

<script type="text/javascript">
    $(document).ready(function() {
        $('.submit').click(function(e){
            var $query = $('.form').formSerialize();
            $('#page_effect').fadeIn(500);
            $.ajax({
                data: $query,
                dataType: 'html',
                type: 'post',
                url: 'includes/functions.php'
            }).done(function(data){
                $.fancybox({
                    content     : data,
                    maxWidth    : 545,
                    maxHeight   : 560,
                    fitToView   : false,
                    autoSize    : false,
                    closeClick  : false,
                    openEffect  : 'fade',
                    closeEffect : 'fade'
                });
                $('#page_effect').fadeOut(200);
            });
            e.preventDefault();
        });    
    });   
</script>