Показать сообщение отдельно
  #2 (permalink)  
Старый 03.11.2010, 13:26
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

В setTimeout Вы передаете аргументом свежесозданную функцию, а для любой функции, не привязанной к определенному объекту this === window. Поэтому, $(this) внутри setTimeout эквивалентен $(window).
В Вашем случае нужно "закешировать" this в другой переменной либо передать его аргументом setTimeout;
$("h3").bind("click", function () {
	if ($(".content").length) {
		var self = this;
		setTimeout(function () {
			moveObj.func.call($(self))
		},
		2000);
	} else {
		moveObj.func.call($(this));
	}
});

RTFM
Ответить с цитированием