2012-10-03 93 views
1

我有jquery同位素設置並創建了一些過濾器。當我創建我選擇一個過濾器,同位素做一個不錯的小動畫。我想在動畫結尾處觸發警報。jquery同位素過濾器完成後觸發警報

這個例子演示功能時出現的動畫:

http://isotope.metafizzy.co/demos/filtering.html

任何想法?

下面是代碼過濾器上的點擊:

$('.filter').on('click', 'a', function(event) { 
     event.preventDefault(); 
     var $this = $(this); 
     // don't proceed if already selected 
     if ($this.hasClass('selected')) { 
      return false; 
     } 

     // console.log('hello world'); 
     var $optionSet = $this.parents('.option-set'); 
     var group = $optionSet.attr('data-filter-group'); 
     options.comboFilters[ group ] = $this.attr('data-filter-value'); 
     $.bbq.pushState(options); 

     // COUNT 
     var $filtered = $('#isotope-container').data('isotope').$filteredAtoms; 
     // get count of all filtered item 
     alert($filtered.length); 
     // get count of all filtered items that match a selector 
     //$filtered.filter('.blue').length; 
    }); 
+0

這可能有所幫助:http://stackoverflow.com/questions/5433862/callback-for-jquery-plugin-isotope – Johan

回答

7

由於V1.5(changelog),同位素提供一個回調來做到這一點;它Isotope's Introduction描述(只是搜索的頁面callback):

此外後選擇對象,你可以指定一個回調。該功能將在動畫完成後觸發。

onAnimationFinished = function(){ 
    // code to be executed after the animation finishes 
}; 

$('#container').isotope({ filter: '.my-selector' }, onAnimationFinished); 

對於實時例子看一看this jsFiddle改變經由複選框輸入或窺視Isotope's Callback Test源的過濾器,並搜索changeBGColor時引發警報。

2

這對我使用同位素2.0不起作用。我也沒有使用jQuery,所以用法可能與vanilla JS不同。無論哪種方式,如果任何人遇到這個問題,我得到它使用2.0的事件回調工作:iso.on('layoutComplete', myFunction)

的同位素事件的更多信息:http://isotope.metafizzy.co/events.html

4

他們沒有爲我工作。相反,我用的是什麼事件部分解釋道: http://isotope.metafizzy.co/events.html

function onLayout() { 
     // What to do when layout fully rendered 
    } 
    // bind event listener 
    $isotope.isotope('on', 'layoutComplete', onLayout); 
0

這些都不爲我工作。我不確定它是否是最新版本的Isotope和/或jQuery 2.1.1。無論如何,我在github上找到了解決方案:

$ isotope.bind(「transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd」,myFunction);