我正在创建一个搜索页面,其中带有单个输入的表单结果将显示在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>
答案 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>