powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Прошу помощи
2 сообщений из 2, страница 1 из 1
Прошу помощи
    #36222340
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток,

Хочу написать фичу, при клике по <span id="tags_selector">выбрать теги</span> открывается окно, со списком тегов. Файл index.html содержит код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script type="text/javascript">
var tagsWindowState =  0 ;
$(document).ready(function(){
	$('span#tags_selector').click(function(){
		if (tagsWindowState ==  1 ) closeTagsSelectWindow();
		else openTagsSelectWindow();
	});
});
</script>

в этом же файле подключается внешний JS-файл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function closeTagsSelectWindow() {
	tagsWindowState =  0 ;
	$('#TagsSelectorWindow').remove();
}

function openTagsSelectWindow() {
	tagsWindowState =  1 ;
	$('<div id="TagsSelectorWindow"></div>').insertAfter('#tags_selector');
	var offset = $('#tags_selector').offset();
	$('#TagsSelectorWindow').css('top',offset.top -  100  + 'px');
	$.ajax({
	 type: 'POST',
	 url: '/modules/system/ajax/get_tags.php',
	 data: 'tags=' + $('input#tags').val(),
	 cache: false,
	 success: function(html){
		 	$('#TagsSelectorWindow').html(html);
		 }
	});
	var selectedTags = $('span.selected');
	selectedTags.forEach( function(item){ alert(item); } );
	return;
}

запрос к '/modules/system/ajax/get_tags.php' возвращает HTML:

Код: plaintext
1.
2.
3.
4.
5.
6.
<div class="tags">
	<span class="tag largest selected">белый</span>
	<span class="tag medium">розовый</span>
	<span class="tag smallest">красный</span>
	<span class="tag small">зелёный</span>
	<span class="tag large selected">синий</span>
</div>

В конце функции openTagsSelectWindow() я не могу получить массив всех выбранных элементов (span.selected):

Код: plaintext
1.
2.
3.
...
var selectedTags = $('span.selected');
selectedTags.forEach( function(item){ alert(item); } );
...

Скажите пожалуйста, где ошибка ?
...
Рейтинг: 0 / 0
Прошу помощи
    #36222436
poiuytrewq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poiuytrewq,

изменил функцию openTagsSelectWindow(), кроме прочего в начало фнукции и в конец добавил

Код: plaintext
1.
	var selectedTags = $('span');
	alert(selectedTags.length);

чтобы посмотреть, сколько всего span-ов в документе до и после загрузки кода, теперь фунция выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function openTagsSelectWindow() {
	var selectedTags = $('span');
	alert(selectedTags.length);
	tagsWindowState =  1 ;
	$.ajax({
	 type: 'POST',
	 url: '/modules/system/ajax/get_tags.php',
	 data: 'tags=' + $('input#tags').val(),
	 cache: false,
	 success: function(html){
		 	$('<div id="TagsSelectorWindow">' + html + '</div>').insertAfter('#tags_selector');
			var offset = $('#tags_selector').offset();
			$('#TagsSelectorWindow').css('top',offset.top -  100  + 'px');
		 }
	});
	var selectedTags = $('.tag');
	alert(selectedTags.length);
	return;
}

При отработке функции оба раза код:

Код: plaintext
1.
	var selectedTags = $('.tag');
	alert(selectedTags.length);

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


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