Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2012, 17:43
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

jQuery - проблема с выбором элемента
Добрый день!
Есть скрипт аккордеона, который при нажатии на заголовок элемента аккордеона подгружает из базы данных информацию, которая отображается на раскрывшейся панели.
Проблема в том, что я не могу загрузить полученную инфу в аккордеон.
Код такой:
<h2 class="acc_trigger_l" id="11"><a href="#">Заголовок1</a></h2>
	<div class="acc_container" style="display: none;" id="vova">Сюда надо вставлять инфу из базы</div>


и проблемный кусок кода:
$('.acc_trigger_l').click(function(){
	var id = $(this).attr('id');
		var idd = $(this).next().attr('id'); // здесь idd=vova, то есть адресация через next() правильная
    //alert( idd );
	//////////////
		$.ajax({  
            type: "POST",  
            url: "loader.php",  
            data: "id="+id,  
            success: function(data) {
        		$(this).next().html(data);  //А вот это не почему-то работает
				//$('#vova').html(data); //А так работает!
				
            }  
        });

Дело в том, что я не могу ссылаться на целевой див по его Id, например, так как этих дивов много, надо на него сослаться именно как на первый див после заголовка элемента аккордеона, выполненного как <h2 class="acc_trigger_l>
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2012, 17:46
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

$('.acc_trigger_l').click(function(){
	var id = $(this).attr('id');
        var elem = $(this);
		var idd = $(this).next().attr('id'); // здесь idd=vova, то есть адресация через next() правильная
    //alert( idd );
	//////////////
		$.ajax({  
            type: "POST",  
            url: "loader.php",  
            data: "id="+id,  
            success: function(data) {
        		elem.next().html(data);  //А вот это не почему-то работает
				//$('#vova').html(data); //А так работает!
				
            }  
        });
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2012, 18:33
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Большое спасибо!!
А можете пояснить, почему так? Почему напрямую через $(this).next не работает?
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2012, 18:56
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Клац
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2012, 19:07
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Ясно, спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2012, 19:37
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

А вот еще вопрос возник: как можно сделать, чтобы отобразить индикатор загрузки на время работы loader.php?
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2012, 20:01
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Перед вызовом ajaxa показываете рисунок или надпись, а в success скрывайте
Ответить с цитированием
  #8 (permalink)  
Старый 24.01.2012, 20:19
Аспирант
Отправить личное сообщение для wfire Посмотреть профиль Найти все сообщения от wfire
 
Регистрация: 15.05.2011
Сообщений: 36

Сообщение от zebra Посмотреть сообщение
Перед вызовом ajaxa показываете рисунок или надпись, а в success скрывайте
Сделал так:
$('#button_sel').click(function(){
	var year = $('#sel_year').val();
	var month = $('#sel_month').val();
	[B]$('#proc').addClass('load1');[/B]
		$.ajax({  
           	type: "POST",  
           	url: "posts_request.php",  
           	data: "_year="+year+"&_month="+month+"&_edit="+edit,  
           	success: function(data) {
        		$(".scrolling_s").html(data);
				$('#list tr:odd').addClass('odd');
      			$('#list tr:even').addClass('even');
				[B]$('#proc').removeClass('load1');[/B]
           	}
		});  
	return false;
	});


Класс load1: .load1 {background:url(/images/ajax-loader1.gif) left no-repeat;}
ajax-loader1.gif - анимированная гифка.
Но проблема в том, что гифка появляется, но анимация не работает, пока не закончится работа posts_request.php
То есть в итоге показалась статичная гифка, скрылась - и все.
Как бы это победить?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в jQuery 1.5.1. Не понимаю в чем проблема? viatcheslav AJAX и COMET 0 16.05.2011 11:38
Создание элемента DOM в jQuery bartonom jQuery 8 08.05.2011 18:25
Проблема при передаче в jquery переменной c id элемента lectrouser jQuery 2 02.05.2011 16:51
Проблема с вкладками на jquery tomclancys Общие вопросы Javascript 0 11.03.2010 08:44
Проблема со списком jquery Deexus jQuery 3 09.01.2009 21:33