Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2008, 16:41
Новичок на форуме
Отправить личное сообщение для qsajeal Посмотреть профиль Найти все сообщения от qsajeal
 
Регистрация: 20.08.2008
Сообщений: 2

2 простых вопроса
1.
Здравствуйте!
Есть функция которая выполняется при OnFocus на элемент форму.
Допустим:

function somefunc (){

//Some actions...


//
//
setTimeout ('somefunc()' ,1000);

}


Эта функция выполняет действия опять и опть каждую секунду пока не перестанет работать скрипт.
Вопрос: как сделать так, чтобы она работала только до того момента когда произойдет событие onBlur c этой формой.
Предполагается что известен id элемента формы.
Заранее спасибо.
2.
У меня есть функция которая посылает запрос в скрипту на сервер.

$.getJSON("admin/js/handler.php", {params1: value, params2: type }, function(obj) {

//Some actions
           );


Если я запускаю эту же функцию из другого файла в другой категории мне нужно другой путь к обработчику писать: js/handler.php (например из папки admin запускаю)
Вопрос: как универсализовать ссылку? (в пхп это легко сделать а в js не знаю как)
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2008, 16:51
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

1.
var tId;
// Вешается на onFocus
function somefunc (){
  //Some actions...
  tId = setInterval (somefunc ,1000);
}

// Вешается на onBlur
function blur() {
  clearInterval(tId);
}


2. $.getJSON("/admin/js/handler.php"...
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2008, 16:56
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

qsajeal,
1. Вам удобнее воспользоваться setInterval/clearInterval для этой задачи.
Нужно сделать примерно следующее:
<html>
<head>
	<script type="text/javascript">
		// Интервал выполнения функции (не нужно редактировать):
		var funcInterval = null;
		
		function func() {
			// Тут любой код, но он не должен сбивать фокус с textarea!
		}
		
		function startFunc() {
			funcInterval = setInterval(func, 1000);
		}
		
		function stopFunc() {
			clearInterval(funcInterval);
		}
		
	</script>
</head>
<body>
	<form action="">
		<textarea onfocus="startFunc()" onblur="stopFunc()"></textarea>
	</form>
</body>
</html>


2. А абсолютный путь вам не подходит? Адрес текущего сайта хранится в window.location.host, добавляйте его в начало строки а дальше - абсолютный путь.

-- добавлено --
Kolyaj,
Ха, пока писал уже ответили
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2008, 17:16
qsajeal (unauth)
 
Сообщений: n/a

1- понял. спасибо
2. Как писать мне? Так что ли:
$.getJSON(window.location.host+"admin/js/handler.php", {
Ответить с цитированием
  #5 (permalink)  
Старый 20.08.2008, 17:47
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Как и написал Kolyaj, для абсолютного адреса начиная с домена вам нужно только поставить slash в начале пути. Т.е. $.getJSON("/admin/js/handler.php", ...)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Два очень важных вопроса Гость Internet Explorer 3 26.07.2008 20:45