Вход

Просмотр полной версии : 2 простых вопроса


qsajeal
20.08.2008, 16:41
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 не знаю как)

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

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


2. $.getJSON("/admin/js/handler.php"...

Андрей Параничев
20.08.2008, 16:56
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,
Ха, пока писал уже ответили :)

qsajeal (unauth)
20.08.2008, 17:16
1- понял. спасибо
2. Как писать мне? Так что ли:
$.getJSON(window.location.host+"admin/js/handler.php", {

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