1

jqueryアイソトープを使用して適切なプロジェクトフィルターを構築するのに苦労しています。'isotope-hidden'クラスによって隠されていない場合にのみ、前のプロジェクトと次のプロジェクトのIDを取得したいと思います。これどうやってするの?

// Get the id's of previous and next projects
if ( $prev.length !== 0 && $next.length !== 0 ) {
    prev_item_id = $prev.find('.project-link').attr( "data-post_id" );
    next_item_id = $next.find('.project-link').attr( "data-post_id" );
}
else if ( $prev.length !== 0 ) {
    prev_item_id = $prev.find('.project-link').attr( "data-post_id" );
}
else if ( $next.length !== 0 ) {
    next_item_id = $next.find('.project-link').attr( "data-post_id" );
}

問題は、ここのどこかにロジックを配置する必要があることです。しかし、同位体隠しクラスによって隠されたプロジェクトを除外するためにこれをどのように適応させるかを理解することはできません。こんな感じですか?

var post_id = $( this ).attr( "data-post_id" );
        current_post_id = post_id;

        var nonce = $( this ).attr( "data-nonce" );
 var $allitems = $('.project-link').not('isotope-hidden');
        var $prev = $allitems.[data-post_id="' + post_id + '"]' .parent().parent().prev('.portfolio-item');
        var $next = $allitems.[data-post_id="' + post_id + '"]' .parent().parent().next('.portfolio-item');

どんな助けでも大歓迎です、ありがとう

4

3 に答える 3

1

次のことを試してください。

function getHiddenIds($element) {
    return $('.project-link:not(.isotope-hidden)', $element).data('post_id');
}
var prev_item_id = getHiddenIds($prev);
var next_item_id = getHiddenIds($next);

参照

于 2012-08-01T00:02:53.827 に答える
0

クリックイベントを割り当てる前に、すべてのアイテムを保存するだけです。

$items = $('.item'); // to reference methods on all .item divs later

次に、Isotopeロジック内で、.isotope-hiddenクラスが適用されているものを見つけます。

$items.find('.isotope-hidden').somemethod('someclass'); // do some stuff with them

あなたがフィドルを持っているなら、あなたが全体としてどんな論理を求めているのかを理解するのはより簡単でしょう。

于 2012-08-01T06:29:58.580 に答える
0

これがあなたの望むものだと思います。not()を使用するだけです

$prev.find('.project-link').not('.isotope-hidden').attr( "data-post_id" );
$next.find('.project-link').not('.isotope-hidden').attr( "data-post_id" );
于 2012-07-31T23:14:14.483 に答える