2013-07-16 25 views
0

我将FancyBox与Google Maps一起用于路由规划;用户输入他们的邮政编码,然后通过单选按钮选择一个酒店:FancyBox错误多次触发框时

<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后直扼流圈(数据{...

Uncaught TypeError: Object function (e,t){return new x.fn.init(e,t,r)} has no method '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。

而且,邮编变量在第一个,第二个和任何数字o中传递值f后来的尝试。

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

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

+0

是什么'初始化();'怎么办? – JFK

+0

触发Google地图的功能。它的存在与FancyBox的功能没有任何区别,或者我得到的错误。 –

回答

0

尝试在重新初始化之前销毁fancybox。前几次我有类似的问题,它解决了我的问题。试试看:

$(document).unbind('click.fb-start'); 
+0

嗨海德,我试着把它放在$(“。fancybox”)之前,然后在initialize()之前;但都没有尝试工作。 –