2010-03-04 7 views
0
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)); 
}); 

Une fonction recherche JavaScript pour textarea avec classe « richtextbox » et appelle une autre fonction (non affiché ici) ... ont essayé de le faire avec jQuery - ne pas travail :-(jQuery - remplacer la boucle par className

Répondre

3

Le problème est cette ligne:

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

signifie que vous appelez le richtextbox(this) et transmettez-le renvoyer la valeur en each(). Cela ne fonctionnera pas à moins que la fonction retourne une fonction.

Ce que je pense vous dire est:

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

C'est la bonne façon de passer une fonction nommée en tant que paramètre.

Idéalement, this serait assumée par la fonction plutôt que de passer en argument, ce qui vous permettrait de raccourcir le code:

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