www.webdeveloper.com
Results 1 to 6 of 6

Thread: Sort elements in reverse

  1. #1
    Join Date
    Jul 2008
    Posts
    28

    Sort elements in reverse

    This is my jquery script to sort elements on a page.

    How do i reverse the order from last to first?

    Code:
    <script type="text/javascript">
    		// When the document is ready set up our sortable with it's inherant function(s)
    		$(document).ready(function() {
    			$("#sortlist").sortable({
    				update : function () {
    					var order = $('#sortlist').sortable('serialize');
    					$("#showmsg").load("sort.php?"+order);
    				}
    			});
    		});
    	</script>

  2. #2
    Join Date
    Apr 2010
    Location
    Salem,Ma
    Posts
    623
    never really thought about this before, but I took a look for fun. I think this will do it -
    Code:
    		$(document).ready(function() {
    			$("#sortlist").sortable({
    				update : function () {
    					var order = $('#sortlist').sortable('toArray');
    					order.reverse()
    					order.serializeArray()
    					$("#showmsg").load("sort.php?"+order);
    				}
    			});
    		});

  3. #3
    Join Date
    Apr 2010
    Location
    Salem,Ma
    Posts
    623
    not sure what you are actually trying to do, but this basically means

    " everytime the user moves elements that are sortable, put them all in the reverse order the user asked for"

  4. #4
    Join Date
    Jul 2008
    Posts
    28
    Thanks a lot,

    But i tested it and i didn't work,

  5. #5
    Join Date
    Dec 2003
    Location
    Bucharest, ROMANIA
    Posts
    15,428
    DOM elements are not the elements of an array, they are the elements of a live collection, thus you can not "sort" them.

  6. #6
    Join Date
    Apr 2013
    Posts
    1
    I have a similar problem also and wondering if u can help- I'm trying to reverse the order of my list in my script and it doesn't seem to work- if anyone can help me would be great- I'm trying to basically reverse order of i.e. I was able to reverse in excel but when I put this in my script- it doesn't do anything- any help would be great- thank you!!!

    "879":{"code":22262,"cost"1008220},
    "875":{"code":22260,"cost"1008220},
    "871":{"code":22261,"cost"1008220},

    '&nbsp;<input type="button" id="button25" onClick="zdAddJsLink(zdZooItemJsUrl);zdShowItemList();" value="filter" />&nbsp;<input type="button" id="button25a" onClick="zdAddJsLink(zdZooItemJsUrl);zdChangeOrder();" value="Reverse order" style="float: right;"/><br>' +

    so function is zdchange order

    // build up zoo mini item list
    var order = 0;
    function zdChangeOrder(){
    if(order==1){
    order=0;
    }else{
    order=1;
    }
    zdShowItemList();
    }
    function zdNewBuildItemList(strSearchCriteria) {
    var strHtml = '';
    // var strSearchCriteria = '';
    if (strSearchCriteria == null){
    var strSearchCriteria = document.getElementById('zdSearchCriteria').value.toLowerCase();
    }
    if ( (strSearchCriteria=='ultrarare')||(strSearchCriteria=='ultra') ){
    strSearchCriteria = 'ultraRare';
    }
    if ( zdZooItems['success'] ) {
    strHtml += '<div id="zdItemList">';
    var start;
    var stop;
    var op;
    var inc;
    var operators = {
    '<': function(a, b) { return a < b },
    '>': function(a, b) { return a > b },
    };
    if(order==1){
    start = 20000;
    stop = 0;
    op = '>';
    inc = -1;
    }else{
    start = 1;
    stop = 20000;
    op = '<';
    inc = 1;
    }
    for(i=start;operators[op](i,stop);i+=inc){
    if ( zdZooItems[i] != null ) {
    if ( strSearchCriteria == '' ) {
    strHtml += zdNewBuildItem( i );
    } else if ( (strSearchCriteria == 'adoptable') || (strSearchCriteria == 'feed') ) {
    if(zdZooAdoptItems[i]) {
    strHtml += zdNewBuildItem( i );
    }
    } else if ( strSearchCriteria == 'FBC' ) {
    if(FBCList[i]) {
    strHtml += zdNewBuildItem( i );
    }
    } else if ( (strSearchCriteria == 'limited') || (strSearchCriteria == 'limitedgift') ) {
    for(m=0;m<arrLimitedGift2.length;m++){
    if(arrLimitedGift2[m]==i) {
    strHtml += zdNewBuildItem( i );
    break;
    }
    }
    }else if ( strSearchCriteria == 'free' ) {
    for(m=0;m<arrFreeGift2.length;m++){
    if(arrFreeGift2[m]==i) {
    strHtml += zdNewBuildItem( i );
    break;
    }
    }
    }else if ( strSearchCriteria == 'shop' ) {
    for(m=0;m<arrShopIds.length;m++){
    if(arrShopIds[m]==i && !zdZooAdoptItems[i] && (arrPriceIds[(arrPriceIds.indexOf('"'+i+'"')+ 4)] != '"zcash"') && (zdZooItems[i]['width']!=='')) {
    strHtml += zdNewBuildItem( i );
    break;
    }
    }
    }else if (
    (zdZooItems[i]['name'].toLowerCase().indexOf( strSearchCriteria ) > -1)
    || (zdZooItems[i]['rarity'] == strSearchCriteria)
    || ('qty='+arrItemQty[i] == strSearchCriteria)
    || ( (zdZooItems[i]['gestation']/12)+'hr'== strSearchCriteria )
    || (Number(strSearchCriteria)==i)
    ) {
    strHtml += zdNewBuildItem( i );
    }
    }
    }
    strHtml += '</div>';
    } else {
    strHtml += zdui.getLabel("shop_listempty") + ' ' + zdZooItems;
    strHtml += '/ ' + zdZooItems.length;
    }
    return strHtml;
    }

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles