0

div のグリッドを日付で並べ替えていますが、問題が発生しました。div は日付で並べ替えられていますが、別の月を導入すると、それは考慮されず、日の値で並べ替えられます。

HTML:

<div class="grid-filter">
    <a href="#">
    <div class="grid-block" style="background-color: #46747c" data-category="1952013">
        <div class="block-text date-title">19/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="#">
    <div class="grid-block" style="background-color: #ebd133" data-category="2552013">
        <div class="block-text date-title">25/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="#">
    <div class="grid-block" style="background-color: #cc7788" data-category="3052013">
        <div class="block-text date-title">30/05</div>
    </div>
    </a>
</div>
<div class="grid-filter">
    <a href="#">
    <div class="grid-block" style="background-color: #46747c" data-category="0562013">
        <div class="block-text date-title">05/06</div>
    </div>
    </a>
</div>


jQuery

 jQuery(document).ready(function(){

var jQuerycontainer = jQuery('#main-grid');

if(location.hash!=""){
    var hashfilter = "." + location.hash.substr(1);
    }
    else{
    var hashfilter = "*";
    }

jQuerycontainer.imagesLoaded( function(){
jQuerycontainer.isotope({
    filter: hashfilter,
    itemSelector: '.grid-block',
    getSortData : {
    date : function( jQueryelem ) {
    return jQueryelem.attr('data-category');
    }
    },
    sortBy : 'date',
    animationEngine: 'css',
    masonry: {
    columnWidth: 4
    }

});
});

jQuery('.filter-menu a').click(function(){
    var selector = jQuery(this).attr('data-filter');
    var prettyselector = selector.substr(1);
    location.hash = prettyselector;
    jQuery('html, body').animate({scrollTop:0}, 'slow');
    return false;
    });

jQuery('.grid-filter a').click(function(){
    var selector = jQuery(this).attr('data-filter');
    var prettyselector = selector.substr(1);
    location.hash = prettyselector;
    jQuery('html, body').animate({scrollTop:0}, 'slow');
    return false;
    }); 

jQuery(window).hashchange(function(){

                if(location.hash!=""){
                    var hashfilter = "." + location.hash.substr(1);
                }
                else{
                    var hashfilter = "*";
                }


jQuerycontainer.imagesLoaded( function(){
jQuerycontainer.isotope({
    filter: hashfilter,
    itemSelector: '.grid-block',
    getSortData : {
    date : function( jQueryelem ) {
    return jQueryelem.attr('data-category');
    }
    },
    sortBy : 'date',
    animationEngine: 'css',
    masonry: {
    columnWidth: 4
    }
});
});
});
});

したがって、ブロックはソートされていますが、05が最小の数字であるため、日付のある最後のブロックが0562013最初に表示されます.とにかく月も考慮して、日付でdivを正常にソートしますか?

4

2 に答える 2

0
jQuerycontainer.imagesLoaded( function(){
jQuerycontainer.isotope({
    filter: hashfilter,
    itemSelector: '.grid-block',
    getSortData : {
    date : function( jQueryelem ) {
    return date.substring(4,8)+date.substring(2,4)+date.substring(0,2);
    }
    },
    sortBy : 'date',
    animationEngine: 'css',
    masonry: {
    columnWidth: 4
    }

});
});
于 2013-03-07T16:14:17.320 に答える
0

日付形式を変更する必要があります。今のやり方では、日と月を区別することはでき2122013ません。2.12.201321.2.2013

Y-M-D一般的な(年-月-日、例2013-03-07) 形式をお勧めします。
デフォルトでソート可能です。他に何も変更する必要はありません。

于 2013-03-07T20:45:33.510 に答える