jQuery - заменить цикл на className - PullRequest
0 голосов
/ 04 марта 2010
function loadTextboxes()
{
    var textareas = document.getElementsByTagName('textarea');

    for(var i=0; i < textareas.length; i++)
    {
        if (textareas.item(i).className == "richtextbox")
        {
            richtextbox(textareas.item(i));
        }
    }
}

//window.attachEvent('onload',loadTextboxes);

$(document).ready(function() {
    //loadTextboxes(); // works ...
    $('.richtextbox').each(richtextbox(this));
});

Функция JavaScript ищет текстовая область с классом "richtextbox" и вызывает другую функцию (не опубликовано здесь) ... попытался сделать это с помощью jQuery - не работает: - (

1 Ответ

3 голосов
/ 04 марта 2010

Проблема в этой строке:

$('.richtextbox').each(richtextbox(this));

означает, что вы звоните richtextbox(this) и передаете его возвращаемое значение в each(). Это не будет работать, если функция не возвращает функцию.

Я подозреваю, что вы имеете в виду:

$(function() {
  $("textarea.richtextbox").each(function() {
    richtextbox(this);
  });
});

Это правильный способ передачи именованной функции в качестве параметра.

В идеале функция this будет восприниматься функцией, а не передаваться в качестве аргумента, что позволит вам сократить код до:

$(function() {
  $("textarea.richtextbox").each(richtextbox);
});
...