использование live () или livequery () со счетчиком символов textarea - PullRequest
1 голос
/ 10 августа 2010

Я загружаю во внешний кусок html через $ .get () и хочу привязать счетчик символов к любому текстовому пространству, загруженному в него.

Обычно для такого рода задач я бы использовал live (), если бы он был основан на событиях, или плагин livequery, если это была пользовательская функция.Поскольку я использовал плагины счетчиков персонажей, я использовал livequery, но я не могу на всю жизнь заставить счетчики символов работать с недавно созданными текстовыми областями.Не уверен, что есть смысл вставлять мою попытку 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 голосов
/ 11 августа 2010

Единственное, что я мог подумать, это то, что 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();

});

Если это работает нормально, то вы знаете, что это данные (сервер).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...