Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   class верхнего элемента (https://javascript.ru/forum/css-html/21680-class-verkhnego-ehlementa.html)

memento 20.09.2011 09:18

class верхнего элемента
 
Здравствуйте помогите пожалуйста со скриптом, очень нужно :)
Есть вот такой код, но он обрабатывает все с начала страницы, а нужно что бы от клика мышки он поднимался только до определенного класса и от туда уже производил поиск div

<span class="expand"> 
        <div id="h0"> 	 <a class="slide" onclick="document.getElementById('h0').style.display='none';document.getElementById('h1').style.display='';return false;" href="#" >Северный Сервис-Центр <span class="more">Подробнее </span></a> </div>
       	 
        <div id="h1" style="display: none; "> 	 <a class="link" onclick="document.getElementById('h1').style.display='none';document.getElementById('h0').style.display='';return false;" href="#" >Северный Сервис-Центр <span class="more"> Скрыть </span> </a> 	</div>
       	 </span>


Всем огромное спасибо :)

melky 20.09.2011 10:23

без указания подробностей, наверное, вы хотели получить такой код

document.body.onclick = function(){

      polnyatsaDoOpredelennogoClassa();

      poiskDiv();

}

memento 20.09.2011 10:29

<span class="expand"> <div id="h0"> 	 <a class="slide" onclick="document.getElementById('h0').style.display='none';document.getElementById('h1').style.display='';return false;" href="#" >Северный Сервис-Центр <span class="more">Подробнее </span></a> </div></span>

вот есть javascipt в таких блоках он ищет id элемента от начала всей страницы, как сделать этот скрипт что бы он обращался к вот этому родителю <span class="expand"> и искал только в нем нужные id

Большое спасибо еще раз всем :) весь гугл перерыл не могу разобраться....

melky 20.09.2011 10:32

id у элемента уникален на странице. класс, может тогда?

memento 20.09.2011 10:45

Спасибо большое, я не знал что id не может быть больше одного :) но получается тогда класс искать надо :) но гляда на вашу аватарку.... ))

melky 20.09.2011 10:56

как-то так. без фреймворков. делает по аналогии с вашим кликом.

не требует ID (можно поубирать)

работать должен кроссбраузерно. проверьте , пожалуйста, в IE :) я под линуксом , под рукой осла нет.

на аватарке написано про объекты-классы, а не про классы у элементов :)

код работает так :

Цитата:

ищет родительский DIV, скрывает его,
ищет СОСЕДНИЙ РОДИТЕЛЬСКОМУ DIV и показывает его.

var ie=/*@cc_on!@*/0, doc=document;

var toggle = function(el,hide/*bool*/){
    el.style.display = hide ? 'none':'';
}

var handler = function(e){

    var el = ie ? event.srcElement:e.target,
        div = "DIV"
            
    // searching element parent node. "div#h0", for ex.
    var parent = el.parentNode;
    while( parent.tagName != div ) parent = parent.parentNode;
    
    // hide parent div
    toggle( parent, true );
   
    // searching next div. "div#h1", fox ex.
    var nextDiv = parent.nextSibling;
    while( nextDiv.tagName != div ) nextDiv = nextDiv.nextSibling;
    
    // and show it.
    toggle( nextDiv, false );
    
    // prevent link click
    ie ? (e.returnValue=0):e.preventDefault();
}
        

ie ? doc.attachEvent("onclick", handler):doc.addEventListener('click', handler, false);


Часовой пояс GMT +3, время: 10:34.