powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / function init () можно инициализировать другим действием?
12 сообщений из 12, страница 1 из 1
function init () можно инициализировать другим действием?
    #36481402
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет..
Не селен в подобных вещах по этому прошу совета.
Использую Prototype
и вот такой скрипт
[сode]
<script type="text/javascript">
function init () {
var tabs = document.getElementsByClassName('tabs');
for (var i = 0; i < tabs.length; i++) {
$(tabs[i].id).onclick = function () {
getTabData(this.id);
}
}
}

function getTabData(id) {
var url = 'process.php';
var rand = Math.random(9999);
var pars = 'id=' + id;
var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}

function showLoad () {
$('load').style.display = 'block';
}

function showResponse (originalRequest) {
var newData = originalRequest.responseText;
$('load').style.display = 'none';
$('content').innerHTML = newData;
}
</script>


[/сode]
Суть думаю понятна.. При инициализации события onClick на клас CSS tabs скрипт формирует GET запрос с неким ID с класса tabs и отправляет его на process.php потом же через function showResponse возвращает некий код..

Имхо суть.. Можно ли каким то доступными средствами, инициализировать данное событие, без onClick ? Т.е без действия пользователя.

Например средствами PHP или Java?
Или это из мира фантастики??
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481413
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
	<script type="text/javascript">
		function init() {
			var tabs = document.getElementsByClassName('tabs');
			for (var i =  0 ; i < tabs.length; i++) {
				$(tabs[i].id).onclick = function () {
					getTabData(this.id);
				};
				$(tabs[i].id).onclick();
			}
		}

		function getTabData(id) {
			var url = 'process.php';
			var rand = Math.random( 9999 );
			var pars = 'id=' + id;
			var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse});
		}

		function showLoad() {
			$('load').style.display = 'block';
		}

		function showResponse(originalRequest) {
			var newData = originalRequest.responseText;
			$('load').style.display = 'none';
			$('content').innerHTML = newData;
		}
	</script>
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481425
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо an0nym..
Мне теперь осталось еще научится передать значения ID с PHP в Java и цены мне не будет..
Так как в данном случае, срабатывает первое которое определено в коде...

Но все равно, вы мне открыли истину.
Еще скажите чайнику.. А вот в этом куске
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function init() {
			var tabs = document.getElementsByClassName('tabs');
			for (var i =  0 ; i < tabs.length; i++) {
				$(tabs[i].id).onclick = function () {
					getTabData(this.id);
				};
				$(tabs[i].id).onclick();
			}

 
$(tabs[i].id).onclick() инициализировалось после того как был определен элемент tabs в DOM ?
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481430
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,

откуда ж я знаю, в какой момент вы init() вызываете. Если body onload="init()", то после.
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481433
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок спасибо я понял...Значит я на верном пути...А у вас нету ссылочки хорошей на доку что бы можно было бы почитать о DOM ? А то то что я нахожу, какая то пурга.. Заранее благодарен..
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481437
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,

http://www.w3.org/standards/techs/dom#w3c_all
http://www.w3.org/standards/techs/domevents#w3c_all
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481572
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем я начитался кучу инфы и возник вопрос.
Подгруженное содержимое через innerHTML, будет ли являться DOM элементами? Можно ли с ними работать повторно? Потому как я понял что нет, да и у меня не получается... Элементы не регистрируются в DOM модели страницы...
Это так:?
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481672
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,

будет, должно во всяком случае.

Если у вас что-то не работает, выкладывайте минимально необходимый для полного воспроизведения код в тэге [src], будет время - вам помогут.
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481973
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок..Спасибо an0nym
Опять же, вот функция, которая по событию onclick на div элемент (tabs) (узел) отправляет через prototype по GET свойство элемента (ID)
В ответ, возвращенный результат innerHTML и передает его элементу (div) content
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<script type="text/javascript">
function init () {
              var tabs = document.getElementsByClassName('tabs');
              for (var i =  0 ; i < tabs.length; i++) {
                            $(tabs[i].id).onclick = function () {
                                          getTabData(this.id);
                            }

                                          
              }
}

function getTabData(id) {
              var url = 'process.php';
              var rand   = Math.random( 9999 );
              var pars   = 'id=' + id;
              var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}

function showLoad () {
              $('load').style.display = 'block';
}

function showResponse (originalRequest) {
              var newData = originalRequest.responseText;
              $('load').style.display = 'none';
              $('content').innerHTML = newData;
              return $('content');
}
</script>
Мне необходимо, что возвращенный результат был не #text а элементом DOM.Что бы можно было работать с ними. Но он таковым не стает..
Я вот думаю, если в возращенном результате через javascript создавать новый элемент по типу
Код: plaintext
var newDiv = document.createElement('div')
То увижу ли я его через DOM ?
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481980
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200,

а, вот оно что. createElement всего лишь создает элемент в "песочнице" (не знаю, как это точно по стандартам называется), после этого данный элемент надо еще засунуть в какой-то контейнер, например,
Код: plaintext
1.
2.
var el = document.createElement('div');
el.innerHTML = response;
document.getElementById('content').appendChild(el);

В Прототипе вроде есть обертки для append, prepend, insert etc.
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36481987
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ ничего не мешает сделать так
Код: plaintext
1.
2.
3.
4.
5.
function showResponse (originalRequest) {
              var newData = originalRequest.responseText;
              $('load').style.display = 'none';
              $('content').innerHTML = "<div id='test1'>" + newData + "</div>";
              return $('content');
}

и дальше можно document.getElementById('test1') - т. е. в DOMе всё появится. Но правильнее, конечно, через DOM всё это делать, а не через код в innerHTML.
...
Рейтинг: 0 / 0
function init () можно инициализировать другим действием?
    #36482001
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вроде нет...В контейнер кокраз его засовывать и не надо... Он нормальное создается и так..Но если он изначально находится в коде, а не подгружен через .innerHTML
К тому же этот вариант мне тоже не подходи
Код: plaintext
1.
 $('content').innerHTML = "<div id='test1'>" + newData + "</div>";
, так как подгруженное не должно является один единым элементом., а DOM моделью.

Попытаюсь сейчас написать какую то функцию, которая дополнительно бы создавала DOM элемент, а с .innerHTML подтягивала бы значения... хз мож и выйдет так))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / function init () можно инициализировать другим действием?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]