2016-09-04 2 views
0

J'essaie de créer jQuery pour abréger une partie de mon texte dans un tableau afin qu'il s'adapte plus facilement aux périphériques plus petits. J'ai essayé quelque chose comme ceci:jQuery - Suppression d'une partie du texte dans le tableau sur des écrans plus petits

jQuery(function($) { 
$(window).load(function() { 
    $(window).resize(function() { 
     if ($(window).width() < 480) { 
      $('td:contains("Hertford Hotshots")').text(function() { 
       return $(this).text().replace("Hertford Hotshots", "Hotshots"); 
      }); 
     } 
    }); 
}); 
}); 

Mais il ne revient pas en arrière à la chaîne d'origine quand je redimensionnez la fenêtre sur 480px (je dois rafraîchir la page) qui n'est pas idéal.

j'ai donc essayé:

jQuery(function($) { 
$(window).load(function() { 
    $(window).resize(function() { 
     if ($(window).width() < 480) { 
      $('td:contains("Hertford Hotshots")').text(function() { 
       return $(this).text().replace("Hertford Hotshots", "Hotshots"); 
      }); 
     } 
     if ($(window).width() >= 480) { 
      $('td:contains("Hotshots")').text(function() { 
       return $(this).text().replace("Hotshots", "Hertford Hotshots FC"); 
      }); 
     } 
    }); 
}); 
}); 

Mais parce que le texte que je suis en train de changer au < 480px contient le mot même (hotshots), on crée une référence circulaire lors du redimensionnement de la page back up! Y at-il autre chose que je peux essayer? (Peut-être ajouter?)

Merci pour votre aide!

+1

'jQuery (function ($) {$ (fenêtre) .load (function() {'est trop, juste faire $ (function() {' – mplungjan

+0

@mplungjan 'window load' est assez différent de' dom ready' –

+0

Quoi qu'il en soit, il n'y a aucune raison d'envelopper l'un dans l'autre – mplungjan

Répondre

1

Essayez

$(function() { 
    $(window).resize(function() { 
    $('td:contains("Hotshots")').text(function() { 
     return $(window).width() < 480?"Hotshots":"Hertford Hotshots"; 
    }); 
    }); 
}); 

Ceci est probablement une meilleure idée:

$(function() { 
    $(window).resize(function() { 
    $('.resizable').text(function() { 
     return $(window).width() < 480 ? 
     $(this).data("short") : 
     $(this).data("long"); 
    }); 
    }); 
}); 

et ont

<td class="resizable" data-short="Hotshots" data-long="Hertford Hotshots">Hertford Hotshots</td> 
+0

Malheureusement, cela ne revient pas à la chaîne de texte d'origine lors du redimensionnement de la fenêtre! :-( – UnluckyForSome

+0

Parce que j'ai choisi le mauvais mot (mis à jour). – mplungjan