使用带有textarea字符计数器的live()或livequery()

时间:2010-08-10 15:50:04

标签: jquery-plugins jquery

我正在通过$ .get()加载一个外部的html块,我想将一个字符计数器绑定到其中加载的任何textareas。

通常对于这种任务,如果是基于事件的话,我会使用live(),如果是自定义函数,我会使用livequery插件。因为我一直在使用字符计数器插件我一直在使用livequery,但我不能为我的生活让char计数器工作在新创建的textareas。不确定粘贴我的livequery尝试有多重要,但无论如何它都在这里!

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

我尝试了一些jQuery计数器插件,其中两个我在这里链接:

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

到目前为止还没有任何效果。代码/函数适用于尚未通过jQuery $ .load,$ .get或$ .post加载的内容。

任何?我正在这里走向毛发撕裂的阶段!

jQuery代码,目前在slideDown()调用之前中断,因为涉及$(data).find ...行:

$.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();

            });

生成的HTML的相关片段:

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

1 个答案:

答案 0 :(得分:0)

我唯一能想到的是data不是你的想法。

试试这个:

$.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();

});

如果可以,那么你就知道它是数据(服务器)。