Czy można wykonać jeden gotowy blok jQuery po wykonaniu wszystkich innych zadań?wymuszenie uruchomienia bloku gotowego jQuery po wszystkich pozostałych gotowych blokach.
mam to na mojej stronie głównej ...
<script type="text/javascript">
$(document).ready(function()
{
$("input[type='text']:enabled:first", document.forms[0]).focus().select();
});
</script>
i to w jednym z moich innych stron ...
<script type="text/javascript">
$(document).ready(function()
{
$('textarea.message-body').wysiwyg();
});
</script>
Problem widzę jest, że pierwszy blok jest wykonywane przed drugim blokiem, co powoduje problem z klawiszem tabulatora. Co się dzieje, to że fokus na klawiaturze przechodzi do paska adresu w przeglądarce po naciśnięciu klawisza tabulatora. Zmieniłem kod nieco, aby mieć to na mojej stronie wzorcowej ...
<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>
i całkowicie usunąć drugi gotowy blok. Sprawia to, że klawisz tabulacji działa poprawnie i ustawia fokus na moim obszarze tekstowym.
Wolałbym nie mieć określonego kodu strony na mojej stronie wzorcowej.
Czy istnieje sposób, aby mój kod ogniskowania w polu tekstowym był uruchamiany po kodzie WYSIWIG?
Dzięki, ja jakby dostał to samo rozwiązanie. Poszedłem do funkcji OnLoad() na mojej stronie, z tym w master ... $ (document) .ready (function() { if (typeof (OnLoad)! = "undefined") { OnLoad(); } $ ("input [type = 'text']: enabled: first", document.forms [0]). focus() .select(); }); –
Szukałem więcej ogólnego rozwiązania problemu synchronizacji i okazało się, że JavaScript nie jest wielowątkowy: http://stackoverflow.com/questions/39879/why-doesnt-javascript-support-multithreading –
Nie zobaczysz cokolwiek na temat "synchronizacji wątków JavaScript", ponieważ silniki JS w przeglądarce są wszystkie wątkowane. –