[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача this в settimeout
Pyroman
Здравствуйте. Возникла проблема. При использовании следующего кода:
setTimeout(function() {itog1(this)}, 100);

возникает ошибка "g.nodeName is undefined".
Что я неправильно делаю? Спасибо.



Спустя 45 минут, 53 секунды (2.08.2012 - 17:03) bodja написал(а):
Походу обьект g. кудато потерялся ,пока тайм аут сработал.Или у этот обьект не поддерживает метод nodeName.

Спустя 18 минут, 29 секунд (2.08.2012 - 17:22) Pyroman написал(а):
И как мне тогда передать this?

Спустя 2 минуты, 24 секунды (2.08.2012 - 17:24) bodja написал(а):
Цитата
И как мне тогда передать this?

Передать this кого ,куда и зачем?
По одной строчке ,можно гадать только на кофейной гуще.

Спустя 14 минут, 16 секунд (2.08.2012 - 17:39) Pyroman написал(а):
При вводе чего-либо в поле вызывается функция itog1.
<INPUT SIZE="1" MAXLENGTH="3" TYPE="TEXT" class="count" NAME="count" VALUE="1" onkeypress="setTimeout(function() {itog1(this)}, 100);">

Вот сама функция:
function itog1(that)
{
var id = $(that).closest('tr').find('.id12').val();
var money = $(that).val();
$.ajax({
type: "POST",
url: 'http://mysite.ru/engine/modules/shop/count.php',
data: "money="+money+"&id="+id,
success: function(html){
$(that).closest('tr').find('.itog').html(html);
}
}
);
}


Но мне обязательно нужно делать задержку, ибо если её не делать, остаётся предыдущее значение. То есть, например поле было пустое и ввели 1, так и передастся пустое значение.

Спустя 2 минуты, 14 секунд (2.08.2012 - 17:41) redreem написал(а):
onkeypress="function(el) {setTimeout(function() {itog1(el)}, 100);}(this)">


как-то так, но вообще - довольно извращенный алгоритм.

Спустя 6 минут, 11 секунд (2.08.2012 - 17:47) Pyroman написал(а):
Цитата (redreem @ 2.08.2012 - 15:41)
onkeypress="function(el) {setTimeout(function() {itog1(el)}, 100);}(this)">


как-то так, но вообще - довольно извращенный алгоритм.

function statement requires a name

Спустя 18 минут, 14 секунд (2.08.2012 - 18:05) redreem написал(а):
onkeypress="(function(el) {setTimeout(function() {itog1(el)}, 100);})(this)">

Спустя 30 минут, 38 секунд (2.08.2012 - 18:36) killer8080 написал(а):
setTimeout(
function(o) {
return function(){
itog1(o)
}
}
(this),

100
);

Спустя 17 минут, 21 секунда (2.08.2012 - 18:53) killer8080 написал(а):
Pyroman
советую почитать эту статейку, там все подробно разжевано smile.gif
http://javascript.ru/basic/closure

Спустя 13 часов, 18 минут, 4 секунды (3.08.2012 - 08:11) ApuktaChehov написал(а):
Pyroman - вообще что бы не передавалось предыдущее значение можно использовать onkeyup.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.