jQuery - заменить цикл на className

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 выполняет поиск textarea с классом "richtextbox" и вызывает другую функцию (не опубликованную здесь) ... пытался сделать это с помощью jQuery - не работает:-(

1 ответ

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

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

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

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

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

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

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

$(function() {
  $("textarea.richtextbox").each(richtextbox);
});
Другие вопросы по тегам