Texte tronqué avec jQuery basé sur le pixel de largeur

Je suis en train d'utiliser jquery pour écrire un rapide fonction qui calcule la largeur en pixels d'une chaîne de caractères sur une page html, puis tronque la chaîne jusqu'à atteindre un idéal de largeur en pixels...

Cependant il ne fonctionne pas (le texte n'est pas tronquer)...

Voici le code que j'ai:

    function constrain(text, original, ideal_width){

    var temp_item = ('<span class="temp_item" style="display:none;">'+ text +'</span>');
    $(temp_item).appendTo('body');
    var item_width = $('span.temp_item').width();
    var ideal = parseInt(ideal_width);
    var smaller_text = text;

    while (item_width > ideal) {
        smaller_text = smaller_text.substr(0, (smaller_text-1));
        $('.temp_item').html(text);
        item_width = $('span.temp_item').width();
    }

    var final_length = smaller_text.length;

    if (final_length != original) {
        return (smaller_text + '&hellip;');
    } else {
        return text;
    }
}

Voici comment je vais l'appeler à partir de la page:

    $('.service_link span:odd').each(function(){
    var item_text = $(this).text();
    var original_length = item_text.length;
    var constrained = constrain(item_text, original_length,175);
    $(this).html(constrained);
});

Toutes les idées sur ce que je fais mal? Si il y a un moyen de le faire plus rapidement (c'est à dire de tri à bulles), ce serait très bien aussi.

Merci!

InformationsquelleAutor novon | 2009-05-22