Вопрос по Jquery

Benderlio

Новичок
Вопрос по Jquery

Есть HTML
<DIV id="map" class="groupItem">
<DIV class="itemHeader" style="-webkit-user-select: none; ">
Карта города
<A href="#" class="closeEl">[-] </A>
</DIV>
<DIV class="itemContent">
<UL>
<LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
<LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
</UL>
</DIV>
</DIV>

И код джикуэри по нажатию на [-]

var targetContent = $('div.itemContent', this.parentNode.parentNode );

if (targetContent.css('display') == 'none')
{
targetContent.slideDown(300);
$(this).html('[-]');
}
else
{
targetContent.slideUp(300);
$(this).html('[+]');
}
return false;

Не пойму что нужно передать в this.parentNode.parentNode что бы код работал
 

Benderlio

Новичок
сейчас туда передается объект, но какой?
как мне обратиться к нему? какой аргумент передавать функции? например close( ????? );
 

Adelf

Administrator
Команда форума
А Я ОТКУДА ЗНАЮ КАКОЙ ОБЪЕКТ У ТЕБЯ ПЕРЕДАЕТСЯ????

Ты просто привел два куска кода.
 

Fratyr

Новичок
this.parentNode.parentNode - вообще-то это чистый JS. тут грубая ошибка.

И как должен работать код я так и не понял.
При нажатии на что, что должно произойти?
 

newARTix

Новичок
упс, всё попутал :) Ну тады должно работать. Что не работает-то?

PHP:
<DIV id="map" class="groupItem">
	<DIV class="itemHeader" style="-webkit-user-select: none; ">
		Карта города
		<A href="#" class="closeEl">[-] </A>
	</DIV>
	<DIV class="itemContent">
		<UL>
			<LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
			<LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
		</UL>
	</DIV>
</DIV>


<script type="text/javascript">
	jQuery(function(){ jQuery('#map a.closeEl').bind('click',function(ev){
		var targetContent = $('div.itemContent', this.parentNode.parentNode );

		if (targetContent.css('display') == 'none')
		{
			targetContent.slideDown(300);
			$(this).html('[-]');
		}
		else
		{
			targetContent.slideUp(300);
			$(this).html('[+]');
		}
		return false;
	
	}); });
</script>
 

Benderlio

Новичок
newARTix
на сколько я понимаю сейчас отлавливается нажатие на [-] и вызывается функция, а мне надо просто вызвать эту функцию в другом коде. не пойму как. как ей передать указатель именно на этот [-] ?
т.е. надо что-то типа

$('#map a.closeEl div.itemContent').css('display')='none';
свернуть определенный див

Спасибо.
 

Adelf

Administrator
Команда форума
PHP:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

<DIV id="map" class="groupItem">
    <DIV class="itemHeader" style="-webkit-user-select: none; ">
        Карта города
        <A href="#" class="closeEl">[-] </A>
    </DIV>
    <DIV class="itemContent">
        <UL>
            <LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
            <LI>orem ipsum dolor sit amet, consectetuer adipiscing elit</LI>
        </UL>
    </DIV>
</DIV>


<script type="text/javascript">
    jQuery(function(){ jQuery('#map a.closeEl').click(function(ev){
        var targetContent = $('div.itemContent', jQuery(this).closest('.groupItem') );

        if (targetContent.css('display') == 'none')
        {
            targetContent.slideDown(300);
            $(this).html('[-]');
        }
        else
        {
            targetContent.slideUp(300);
            $(this).html('[+]');
        }
        return false;
    
    }); });
</script>
 

Benderlio

Новичок
newARTix
а как узнать этот самый #map
jQuery('#map a.closeEl').trigger('click');

положим у меня несколько таких
<DIV id="map" class="groupItem"> .... </div>
<DIV id="map1" class="groupItem"> .... </div>
<DIV id="map2" class="groupItem"> .... </div>

Как выяснить на какой map я нажал?
видимо тут var targetContent = $('div.itemContent', jQuery(this).closest('.groupItem') );
но возвращает объект
нужно просто текстовое значение для передачи php скрипту

нашел alert(jQuery(this).closest('.groupItem').attr('id'));
 

Adelf

Administrator
Команда форума
Benderlio
Ты мой код совсем не смотрел чтоли?
 

Adelf

Administrator
Команда форума
он полностью рабочий..
PHP:
jQuery(this).closest('.groupItem')
, который ты тут как Эврика кричишь там есть...
Или ты не смотрел или одно из двух
 

Benderlio

Новичок
именно твой код и использую, мне нужен был .attr('id') во втором вопросе.

-~{}~ 05.08.10 15:26:

а как выбрать все скрытые(свернутые) div

как то так ?
$(".itemContent:hidden")
 
Сверху