2010-08-10 3 views
1

Je charge un morceau externe de html via $ .get() et je veux lier un compteur de caractères à n'importe quelle zone de texte chargée dedans.en utilisant live() ou livequery() avec un compteur de caractères textarea

Normalement, pour ce genre de tâche, j'utiliserais live() s'il s'agissait d'un événement ou le plugin livequery s'il s'agissait d'une fonction personnalisée. Comme j'ai utilisé des plugins de compteur de caractères, j'ai utilisé livequery, mais je ne peux pas pour la vie de moi obtenir les compteurs de caractères pour travailler sur les textareas nouvellement créés. Pas sûr qu'il y ait beaucoup d'intérêt à coller ma tentative de livequery, mais ici c'est quand même!

$("textarea").livequery(function() { 
    $(this).charcounter(); //or whatever the name of the counter function is 
}); 

J'ai essayé quelques plugins jQuery compteur, dont deux que je suis ici: Linked

http://plugins.jquery.com/project/TextareaCharactersCounter http://brandonaaron.net/code/countable/docs

Et jusqu'à présent, rien n'a fonctionné. Le code/les fonctions fonctionnent sur du contenu qui n'a pas été chargé via jQuery $ .load, $ .get ou $ .post.

Quelqu'un? J'arrive à la phase de décrochage des cheveux ici!

code jQuery, qui, à présent pauses avant l'appel slideDown(), en raison de quelque chose impliqué dans les $ (données) .Find ... ligne:

$.get("lib/scripts/php/ajax/create-content-forms.php", { typeId : typeId }, function(data){ 


       var options = { 
        'maxCharacterSize': 200, 
        'textFontSize': '12px', 
        'textColor': '#5C2306', 
        'textFamily': 'Tahoma,sans-serif', 
        'textAlign': 'right', 
        'warningColor': '#CC3300', 
        'warningNumber': 40, 
        'isCharacterCount': true, 
        'isWordCount': false 
       }; 

       $(data).find('textarea').textareaCount(options).end().appendTo("#contentFormContent"); 
       $("#contentForm").slideDown(); 

      }); 

Et un extrait pertinent du HTML est produit:

<fieldset> 
    <legend>Additional information:</legend> 
    <p> 
     <span class="fieldtext">Description:</span> 
     <textarea name="description" id="description" class="charLimitShort"><?php echo $description ?></textarea> 
    </p> 
</fieldset> 

Répondre

0

La seule chose que je pouvais penser que data n'est pas ce que vous pensez.

Essayez ceci:

$.get("lib/scripts/php/ajax/create-content-forms.php", { typeId : typeId }, function(data) { 


    var options = { 
     'maxCharacterSize': 200, 
     'textFontSize': '12px', 
     'textColor': '#5C2306', 
     'textFamily': 'Tahoma,sans-serif', 
     'textAlign': 'right', 
     'warningColor': '#CC3300', 
     'warningNumber': 40, 
     'isCharacterCount': true, 
     'isWordCount': false 
    }; 

    var myData = '<fieldset>' + 
      '<legend>Additional information:</legend>' + 
      '<p>' + 
      '<span class="fieldtext">Description:</span>' + 
      '<textarea name="description" id="description" class="charLimitShort">Hello</textarea>' + 
      '</p>' + 
      '</fieldset>'; 

    $(myData).find('textarea').textareaCount(options).end().appendTo("#contentFormContent"); 
    $("#contentForm").slideDown(); 

}); 

Si cela fonctionne bien, alors vous savez qu'il est des données (le serveur).

+0

non, malheureusement cela n'a pas fonctionné non plus! Quelque chose ne va pas quelque part - l'appel de slideDown() ne se produit pas. En inspectant la console d'erreur de Firefox, il semble encore produire l'erreur de « Erreur: $ (myData) .Find (» Je commence à penser qu'il est quelque chose à voir avec le plug-in textareaCount. – user416330

Questions connexes