多次触发框时出现FancyBox错误

时间:2013-07-16 08:39:38

标签: jquery fancybox-2

我正在将FancyBox与Google地图结合使用,以便进行路线规划;用户输入他们的邮政编码,然后通过单选按钮选择酒店:

<input type="text" name="post_code" value="" id="post_code" class="post_code"  />

...

<input type="radio" name="venue_id" class="button_1_0" id="radio_1_0" value="166" onClick="if (conditi&hellip;) { ... }" data-postcode="CV7 9HZ" /><div><h5>ANSTY HALL, COVENTRY</h5></div>

...

<div id="map_routes_button">
    <a class="fancybox button-link" id="button" href="http://local/bookings/maps/routes/3" title="Plan your journey"><img src="http://local/library/images/ui/journey-planner.gif" alt="Journey Planner" width="290" height="70" border="0" style="border: 0px;" /></a>
</div>

...

<script type="text/javascript">
    $(".fancybox").on("click", function(ev) {
    ev.preventDefault();
    $.ajax({
        type: "POST",
        cache: false,
        url: this.href,
        data: 's=' + s + '&e=' + e,
        success: function (data) {
            $.fancybox(data, {
                'padding': 0
            });
            initialize();
        }
    });
</script>

所有这些工作正常,直到用户选择另一家酒店,此时FancyBox jQuery在$ .fancybox之后直接窒息(数据,{......

  

未捕获的TypeError:对象函数(e,t){return new x.fn.init(e,t,r)}   没有方法'fancybox'3:3363 $ .ajax.success 3:3363 x.Callbacks.c   jquery.js:3074 x.Callbacks.p.fireWith jquery.js:3186 k jquery.js:8253   x.ajaxTransport.send.r

谷歌地图工作正常,我在这里使用的代码正在应用程序的其他地方使用,虽然没有与FancyBox的连接。

此外,邮政编码变量在第一次,第二次以及之后的任何次数尝试中传递值。

我在页面中只有一个jQuery和FancyBox实例,这消除了对这类错误的最常见解释。

我不认为谷歌地图与此有任何关系,并且这与将变量数据传递给FancyBox本身有关,尽管我的微薄jQuery知识在这一点上突然停止。

1 个答案:

答案 0 :(得分:0)

尝试在重新初始化之前销毁fancybox。我不久前遇到过类似的问题,它解决了我的问题。试一试:

$(document).unbind('click.fb-start');
相关问题