Eric,
Right as always. Had to add some sprucing code to the html() returned. Some
values gave a NaN when parseInt-ed.
Thanks again for the help.
Liking jQuery more by the day!
Regards,
Chinmay
Erik Beeson wrote:
>
> Completely random sorting usually means there's something wrong with
> your comparing function. Try adding some debugging output in your
> comparing function and make sure you're comparing the correct values
> and get the expected result there.
>
> If you actually have null values in that first if statement, that
> might lead to some seemingly random sorting since you return the same
> thing when either one or the other or both are null. More accurate
> would probably be to return 0 if a and b are both null, -1 if just a
> is null, and 1 if just b is null (or visa versa). At least the null
> values would get consistently sorted one way or the other.
>
> But check what you're comparing. Break that really long return...
> statement up into its parts and print out each part to make sure
> you're comparing the right things.
>
> --Erik
>
>
> On 3/27/07, Chinmay Kulkarni <[EMAIL PROTECTED]> wrote:
>>
>> I tried using the code, as suggested by Eric, but it doesn't work. In my
>> case, I'm trying to sort a bunch of divs based on the value of a span
>> inside
>> each. However, the sorting is completely random!
>>
>> I don't know what I'm doing wrong!
>>
>> jQuery.noConflict();
>> $j = jQuery;
>>
>> riggit = {
>> /*...*/
>>
>> init: function() {
>> //jQuery extensions
>> jQuery.fn.sort = function() {
>> return this.pushStack( jQuery.makeArray(
>> [].sort.apply( this, arguments
>> )) );
>> };
>> this.sortByScore($j('#post-0001')); //Sample div id;
>> One among the
>> sortable posts
>>
>> ....
>>
>> },
>>
>> sortByScore: function(elem) {
>> elem.siblings().sort( function(a,b) {
>> if($j(a).find('.riggit-pointsDisplay').html() ==
>> null ||
>> $j(b).find('.riggit-pointsDisplay').html() == null) {
>> return 1;
>> }
>> return
>> (parseInt(($j(a).find('.riggit-pointsDisplay').html())) >
>> parseInt($j(b).find('.riggit-pointsDisplay').html())) ? 1 : -1;
>> }).appendTo(elem.parent());
>> },
>> };
>>
>> $j(document).ready(function() {
>> riggit.init();
>> });
>>
>> Would be most grateful for any help...
>>
>> Regards,
>> Chinmay
>>
>>
>>
>> bmckenzie wrote:
>> >
>> > Thanks Eric.
>> >
>> > Erik Beeson said the following on 3/26/2007 9:47 AM:
>> >> Even easier than that:
>> >>
>> >> jQuery.fn.sort = function() {
>> >> return this.pushStack( jQuery.makeArray( [].sort.apply( this,
>> >> arguments )) );
>> >> };
>> >>
>> >> See here: http://dev.jquery.com/ticket/255
>> >>
>> >> Looks like I'm still about the only person that actually uses this.
>> >>
>> > I'll probably use it quite a lot. My current app is where I've got a
>> > bunch of forms that I want to rearrange themselves when a person
>> submits
>> > one with a changed date field. Doesn't seem that exotic to me :-)
>> >
>> > Bruce
>> >
>> > --
>> > Bruce McKenzie
>> > http://www.2MinuteExplainer.com
>> >
>> > _______________________________________________
>> > jQuery mailing list
>> > [email protected]
>> > http://jquery.com/discuss/
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Sorting-items-in-jQuery-pseudo-array-tf3466978.html#a9690202
>> Sent from the JQuery mailing list archive at Nabble.com.
>>
>>
>> _______________________________________________
>> jQuery mailing list
>> [email protected]
>> http://jquery.com/discuss/
>>
>
> _______________________________________________
> jQuery mailing list
> [email protected]
> http://jquery.com/discuss/
>
>
--
View this message in context:
http://www.nabble.com/Sorting-items-in-jQuery-pseudo-array-tf3466978.html#a9695904
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/