JS: SetTimeout() не работает
Код:
function Circle(param){
document.write(param);
setTimeout("Circle("+param+")",50);
}
document.write(param);
setTimeout("Circle("+param+")",50);
}
вызвать так: Circle("43"); //работает
вызвать так: Circle("word"); // не работает
Ведь один хрен строка передаётся.
В чём ошибка?
Цитата:
Originally posted by Mnilionic
вызвать так: Circle("43"); //работает
вызвать так: Circle("word"); // не работает
вызвать так: Circle("43"); //работает
вызвать так: Circle("word"); // не работает
Если вызывать
Код:
Circle("'word'");
Видимо для JS 'word' - строка, а word - все таки нет.
Цитата:
Originally posted by skywalker
Если вызывать
то все работает, а если как ты, то появляется сообщение: у word отсутствует определение.
Видимо для JS 'word' - строка, а word - все таки нет.
Если вызывать
Код:
Circle("'word'");
Видимо для JS 'word' - строка, а word - все таки нет.
Я думал:
Circle("word"); - строка
Circle(word); - переменная.
Оказывается нужно двойные кавычки "'строка'".
Спасибо.
вот так у меня не получается:
Код:
<script>
document.links[0].onmouseover = function() {Fx(this)};
function Fx(obj){
//alert(typeof (obj));
setTimeout("NextFx("+obj+")",1000);
}
function NextFx(obj){
alert(typeof (obj));
}
</script>
document.links[0].onmouseover = function() {Fx(this)};
function Fx(obj){
//alert(typeof (obj));
setTimeout("NextFx("+obj+")",1000);
}
function NextFx(obj){
alert(typeof (obj));
}
</script>
Код:
<script>
document.links[0].onmouseover = function() {Fx(this)};
</script>
document.links[0].onmouseover = function() {Fx(this)};
</script>
Вызов функии производится так:
Fx(значение);
К тому же все функции надо определить до их использования.
Код:
<script>
document.links[0].onmouseover = function() {Fx(this)};
</script>
document.links[0].onmouseover = function() {Fx(this)};
</script>
Вызов функии производится так:
Fx(значение);
К тому же все функции надо определить до их использования.[/QUOTE]
Как вызывается функция я знаю.
Я не понимаю, почему у меня не работает скрипт, когда он проходит через setTimeout.
вот мой пример:
Код:
<script>
function Fx2(obj){
alert(obj.className);
}
function Fx(obj){
param = "Fx2("+ obj +")";
setTimeout(param, 1000);
}
</script>
<a href="#" class="my_link" onmouseover="Fx(this)">не работает</a>
<br>
<a href="#" class="my_link" onmouseover="Fx2(this)">работает</a>
function Fx2(obj){
alert(obj.className);
}
function Fx(obj){
param = "Fx2("+ obj +")";
setTimeout(param, 1000);
}
</script>
<a href="#" class="my_link" onmouseover="Fx(this)">не работает</a>
<br>
<a href="#" class="my_link" onmouseover="Fx2(this)">работает</a>
если мне обьяснят, я буду весьма рад.
Спасибо.
<script>
function Fx2(obj){
alert(obj.className);
}
function Fx(obj){
param = Fx2(obj);
setTimeout(param, 1000);
}
</script>
<a href="#" class="my_link" onmouseover="Fx(this)">не работает</a>
<br>
<a href="#" class="my_link" onmouseover="Fx2(this)">работает</a>
По моему ты совсем запутался в кавычках, кавычки ставятся когда передается строка, а когда передается объект то кавычки не нужны.
<script>
function Fx2(obj){
alert(obj.className);
}
function Fx(obj){
param = Fx2(obj);
setTimeout(param, 1000);
}
</script>
<a href="#" class="my_link" onmouseover="Fx(this)">не работает</a>
<br>
<a href="#" class="my_link" onmouseover="Fx2(this)">работает</a>
По моему ты совсем запутался в кавычках, кавычки ставятся когда передается строка, а когда передается объект то кавычки не нужны.[/QUOTE]
Спасибо.
Да, в этом языке скриптов я запутался с кавычками. Но я уже почти уловил закономерности относительно двойных, одинарных и вложенния одних в другие. :)
Ошибка была в том, что в моём учебнике первый параметр функции setTimeout передавался как строка: setTimeout("MyFunc()",1000);
PS: Применил предложенный Вами вариант - всё равно происходит ошибка. И если функцию Fx2 запускать циклично, то скрипт не работает. :(
Да, в этом языке скриптов я запутался с кавычками. Но я уже почти уловил закономерности относительно двойных, одинарных и вложенния одних в другие. :)
Ошибка была в том, что в моём учебнике первый параметр функции setTimeout передавался как строка: setTimeout("MyFunc()",1000);
PS: Применил предложенный Вами вариант - всё равно происходит ошибка. И если функцию Fx2 запускать циклично, то скрипт не работает. :([/QUOTE]
Если не работает передача параметров в функцию с помощью setTimeout, то может тебе сделать рекурсию, т.е. поместить setTimeout в саму фунцию, что-то типа:
<script>
var param;
function funcChancgeParam (){
/*здесь что то делается с param*/
setTimeout("funcChancgeParam()",1000);
}
</script>
<a href="java script: param=/*данные*/">Изменить param
Хотя я не знаю твоего алгоритма и видел твоего кода, так что это мое предположение :)