2013-05-17 10 views
6

アイソトープ要素で検索するためのjquery検索プラグインが統合されています。このプラグインは、検索入力に基づいてコンテンツをリアルタイムでソートするために正規表現を使用します。検索後の同位体再配列

同位体要素が自動的に更新されます(私はソーシャルネットワークからデータを取得ワードプレスのプラグインを使用しています)

私の質問は、検索が実行された後、私は要素の順序を変更する方法、ありますか?

LE:私はSEARCHINGのために他のプラグインを使用してこれを解決しよう'VE:ここ は、コードは次のとおりです。

   $(document).ready(function() { 
      $("#id_search").quicksearch(".dcsns-content .isotope-item", { 
       noResults: '#noresults', 
       loader: 'span.loading', 

       'show': function() { 
    $(this).addClass('quicksearch-visible'); 
}, 
'hide': function() { 
    $(this).removeClass('quicksearch-visible'); 
}, 
'onAfter': function() { 
    $('.dcsns-content .stream').isotope({ filter: '.quicksearch-visible' }); 
} 
      }); 
     }); 
+0

'jQuery(document).ready'ではなく、あなたが探している要素がまだページの読み込みに存在していないかもしれません。また、htmlの' .wall-outer'や '.stream'要素は表示されません。 – TCHdvlp

+0

申し訳ありませんが、これは私を助けていない、私は何か他に尋ねた、検索が機能している、要素が大丈夫です、私が必要なものは、検索後に要素を並べ替える方法です、あなたはちょうどリンクを確認する必要があります – agis

+0

私の悪い、私それが 'ReferenceError'の問題だと考えました。Wmellは、同位体のサイトの文書で' g etSortDataパラメータ。私はあなたがすでにそれを試したと思います。 – TCHdvlp

答えて

2

は、唯一.LOAD関数は)(あなたは変数$コンテナ= $を追加し、それ

2つのソリューションが表示されます。通常のJSで非常に.LOADと.readyが

それにアクセスするか、.ready関数にすべてのマージ:あなたは `jQueryの(ウィンドウ).LOAD(関数(){`理由を使用している

$(function(){ 
    var $searchBox = $("#searchbox"); 
    var $searchFilter = $('.searchFilter'); 
    var $container = $('.wall-outer .stream'); 

    $searchBox.on("blur",function(){ 
     if(this.value === '') 
       this.value='Keyword(s)'; 
    }).on("focus",function(){ 
     if(this.value === this.defaultValue) 
       this.value = ''; 
     else this.value = null; 
    }); 

    $searchFilter.simpleContentSearch({ 
     'active' : 'searchBoxActive', 
     'normal' : 'searchBoxNormal', 
     'searchList' : 'dcwss-content ul li',  // this is important 
     'searchItem' : 'div'      // this is important 
    }); 

    $(".search-btn").on("click", function(){ 
     $searchBox.val($(this).data("search")); 
     $searchFilter.keyup(); 
     $container.isotope('reLayout'); 
    }); 

    $(".search-reset").on("click", function(){ 
     $searchBox.val(""); 
     $searchFilter.keyup(); 
     $container.isotope('reLayout'); 
    });    

    $container.isotope('reLayout'); 
}); 
+0

ご回答ありがとうございますが、私はすでにこの解決策を見つけました! – agis

3

私は最後に次を追加することにより、作業ワンショット例を取得することができましたあなたのfiltercontent.jsファイル:

// Get isotope container 
    $container = jQuery('.dc-wall .stream'); 

    // Clear out existing isotope class instance 
    $container.data('isotope', null); 

    // Start a new isotope instance on the container 
    $container.isotope({ filter: ':visible', sortBy: 'postDate' }); 

これは、あなたがsearch 1をクリックしてください最初の時間を動作しますが、同位体を再起動するという概念が有効であることを示しています。私はあなたのフィルタリングがどのように機能するかについて十分に理解していませんが、これがあなたに出発点を与えることを願っています。

皮がインスタントした場合があり、コンテンツフィルタはhide()又はfade()を用いdisplay: noneに項目をアニメーション化という点で問題があるため、これが唯一の仕事(私はまた、hide(0)を使用するようにフィルタを変更し)、例えばあなたは.LOADに$コンテナを宣言するよう

jQuery(this).parent('.' + settings.searchList).hide(0); 
+0

私はこれを[fiddle](http://jsfiddle.net/dynamyc/V2pQf/9/embedded/result/)に入れましたが、ちょっとしたことで作業しているので奇妙です**検索1 * *検索2 **が正しく動作していません。それがうまくいくのは、「検索1」をクリックして要素を並べ替えるときのようなもので、「検索2」をクリックしたときに最初に検索入力をリセットした後、検索を行い、この並べ替えの後に再び要素意見これは働くことができる解決策になる可能性があります。どう思いますか?これは可能ですか? – agis

+1

@Alecs:サーバーからJSファイルをプルダウンしてテストJSを上書きするため、JSFiddleでサイトを正しくテストできません。変更はfiltercontent.jsに入る必要がありましたが、ここでも** Search 1 **でのみ実行されました。ソーシャルウォールプラグインを見ると、新しいアイテムを追加することを除いて、アイソトープを呼び出すことはほとんどありません。ソーシャルプラグインの作家に連絡してみましたか? –

+0

私はこれを追加しましたが、うまくいきません。あなたは[link](http://v2.letsplayibiza.com/elements/)を見ることができます。プラグインの開発者にも尋ねましたが、これを行うためにお金を求めるだけの兆候。私は同様の質問[ここ](http://stackoverflow.com/questions/6738327/resorting-isotope-elements-after-search)を見つけました。私は同じ概念を自分のコードに適用することを考えていますが、別の検索プラグインが使用されているので、自分のコードでどのようにすることができますか。 – agis