2013-01-16 33 views
0

我一直爲編程大致20周所以請與我裸露,如果這是微不足道的後追加到Flexslider後...下面無法打開圖像用的fancybox AJAX調用

下面的代碼是在CoffeeScript中和後,幾個小時玩弄它,最後閱讀WooThemes的文檔,我可以讓Flexslider在點擊我的按鈕來加載Instagram的其他圖片後正確追加圖像。

但是,現在當我單擊圖像時,它不打開Fancybox,就像載入頁面加載的圖像的其餘部分一樣,並且想知道是否可以在這裏獲得一些幫助。

Slider = 
    flexi: -> 
    $('.flexslider').flexslider 
     animation: 'slide' 
     animationLoop: true 
     slideshow: false 
     itemWidth: 160 
     itemMargin: 5 
     minItems: 1 
     maxItems: 10 
     start: (slider) -> 
     $('#load-more').on 'click', (event) -> 
      event.preventDefault() 
      $.ajax 
      type: 'get' 
      url: $(this).find('a').attr('href') 
      dataType: 'jsonp' 
      success: (data) -> 
       $.each data.data, (index, value) -> 
       slider.addSlide '<li class="thumb" data-profile="' + value.user.profile_picture + '" data-lat="0" data-long="0" data-id="' + value.id + '" data-thumb="' + value.images.thumbnail.url + '" data-username="' + value.user.username + '" data-comments="' + value.comments.count + '" data-likes="' + value.likes.count + '" data-text="' + value.caption.text + '" data-link="' + value.link + '"><a href="' + value.images.low_resolution.url + '" class="fancybox fancybox.iframe"><img alt="' + value.images.thumbnail.url.split('/')[3].split('.jpg')[0] + '" src="' + value.images.thumbnail.url + '" /></a></li>' 

Fancy = 
    box: (lat, lng, pid) -> 
    street = undefined 
    latLng = new google.maps.LatLng lat, lng 
    view = new google.maps.StreetViewService() 
    $('.fancybox').fancybox 
     width: 1155 
     height: '95%' 
     maxWidth: '95%' 
     maxHeight: '95%' 
     openEffect: 'none' 
     autoSize: true 
     autoResize: false 
     closeEffect: 'fade' 
     scrolling: 'auto' 
     type: 'iframe' 
     helpers: 
     media:{} 

     beforeShow: -> 
     ........ 
+0

哪些代碼應該觸發的fancybox?它是$('#load-more')在...上嗎? –

+0

@DennisRongo:我敢打賭,在flexslider之前嘗試初始化fancybox,並與'class =「fancybox」' – JFK

+0

的鏈接。另外,如果你只是顯示圖像,你不需要添加特殊類'fancybox.iframe'到選擇器'.fancybox' – JFK

回答

0

你可以嘗試用包裹住()或()的調用的fancybox或去改變的fancybox源代碼,使用實時(),而不是常規的bind()方法。這裏有一個未經測試的代碼來給你一個感覺。

$(document.body).on('click', '.fancybox', function() { 
    $(this).fancybox({ /* options */ }).trigger('click'); 
    return false; 
} 

// //住

$('.fancybox').live('click', function() { 
    $(this).fancybox({ /* options */ }).trigger('click'); 
    return false; 
} 
+0

OP似乎在使用fancybox v2.x,它已經使用'live'來支持呈現或動態添加元素,所以我不認爲這會解決他們的問題。 – JFK

+0

你確定因爲我沒有看到它嗎? https://github.com/fancyapps/fancyBox/blob/master/source/jquery.fancybox.js –

+0

很確定;)....從開發人員自己的聲音中聽到它http://stackoverflow.com/a/8271292/1055987 – JFK