Hi!

I'm creating a jquery plugin that alter an object to remove duplicates
in it. My problem is that a variable that access the old selector
result does not contain the same elements that it would have contained
if it would have been executed after the duplicates removal.
To illustrate :

var v = $('div);   // 150 objects
v.removeDuplicate();   // remove 10 duplicates
// here v still point to 150 objects



Here is my plugin :

jQuery.fn.__sort = function() {
    return this.pushStack([].sort.apply(this, arguments), []);
};

jQuery.fn.sort = function(func) {
    function internalSort(a,b){
        var compA = $(a).text();
        var compB = $(b).text();
        return (compA <> compB) ? 1 : 0;
    }
    if (!$.isFunction(func)) {
        func = internalSort;
    }
    return this.__sort(func);
};

jQuery.fn.removeDuplicate = function() {
    var that = $(this).sort();

    $(this).each(function() {
        var pos = that.index($(this));
        var next = that.eq(pos+1);
        var eq = (next.text() === $(this).text());

        if (eq) { next.remove();}
    });

    // enable chaining, updating selector
    return $($(this).selector);
};


The only solution I found is to return $(this) with an updated
selector. But I would have had to remember to update the content of my
variable before calling the plugin.
ex:
v = v.removeDuplicates();

Can I update $(this) from within removeDuplicate() ??

Thank you

note: I posted this on the jQuery Plugins discussion put it seems
dead, or full of spam.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to