Est-il possible d'avoir un bloc jQuery ready exécuté après que tous les autres blocs aient été exécutés?forcer l'exécution d'un bloc jQuery ready après tous les autres blocs prêtes
J'ai dans ma page maître ...
<script type="text/javascript">
$(document).ready(function()
{
$("input[type='text']:enabled:first", document.forms[0]).focus().select();
});
</script>
et ce dans un de mes autres pages ...
<script type="text/javascript">
$(document).ready(function()
{
$('textarea.message-body').wysiwyg();
});
</script>
Le problème que je vois est que le premier bloc est exécuté avant le deuxième bloc, ce qui provoque un problème avec la touche de tabulation. Qu'est-ce qui se passe est que le focus du clavier va à la barre d'adresse dans mon navigateur lorsque j'appuie sur la touche de tabulation. J'ai légèrement changé le code pour avoir ceci dans ma page principale ...
<script type="text/javascript">
$(document).ready(function()
{
var bodies = $('textarea.message-body');
if (bodies.length > 0)
{
bodies.wysiwyg();
}
$("input[type='text']:enabled:first", document.forms[0]).focus().select();
});
</script>
et de faire disparaître complètement l'autre bloc prêt complètement. Faire cela fait fonctionner la touche de tabulation correctement, et mettre l'accent sur ma zone de texte.
Je préfère ne pas avoir de code spécifique à la page dans ma page maître. Donc, y at-il un moyen de faire exécuter le code de mise au point de ma zone de texte après le code wysiwyg?
Merci, je sorte de obtenu la même solution. Je suis allé pour avoir une fonction OnLoad() dans ma page, ce dans le maître ... –
J'ai cherché un peu plus pour une solution générale sur le problème de synchronisation et trouvé que JavaScript n'est pas multithread: http://stackoverflow.com/questions/39879/why-doesnt-javascript-support-multithreading –
Vous ne verrez pas quoi que ce soit sur la "synchronisation des threads JavaScript" car les moteurs JS dans le navigateur sont tous à thread unique. –