Помогите раелизовать событие по onmouseover (подобрать плагин mootools)

Статус
В этой теме нельзя размещать новые ответы.
Да это я че-то лоханулся, честно-говоря, сейчас пересмотрел немного функцию, так будет правильнее:
Код:
var preview_block;
var links;
var desc_div;
var img;
links = document.getElementById('artists_block').getElementsByTagName('a');
preview_block = document.getElementById('myTable');
for (var i=0; i<links.length; i++) {
    links[i].onmouseover = function () {
        img = document.createElement("img");
        img.src = "images/" + this.getAttribute('rel');
        preview_block.style.visibility = "visible";
        preview_block.appendChild(img);
        if(this.getAttribute('title') != null) {
            desc_div = document.createElement("div");
            desc_div.innerHTML = this.getAttribute('title');
            preview_block.appendChild(desc_div);
        }
    }
    links[i].onmouseout = function () {
        if (preview_block.hasChildNodes()) {
            while (preview_block.childNodes.length >= 1){
                preview_block.removeChild(preview_block.firstChild);       
            } 
        }
        preview_block.style.visibility = "hidden";
    }
}
P.S.: А зачем вам два потока?
 
Да два потока у меня получились из-за макета дизайнера, мне приходится половину ссылок в один див засовывать, а половину в другой. Отсюда и два потока, может быть можно и в один как то сделать?
 
Ну, решение, которое сразу пришло на ум следующее:
Код:
function links(divs) {
    var preview_block;
    var links;
    var img;
    var desc_div;
    divs = divs.split('|');
    for(var i = 0; i < divs.length; i++) {
        links = document.getElementById(divs[i].replace(/^\s+|\s+$/g, '')).getElementsByTagName('a');
        preview_block = document.getElementById('myTable');
        for (var y = 0; y < links.length; y++) {
            links[y].onmouseover = function () {
                img = document.createElement("img");
                if(this.getAttribute('rel') != null && this.getAttribute('rel') != '') {
                    img.src = "images/" + this.getAttribute('rel');
                } else {
                    img.src = "images/no_picture.jpg";
                }
                preview_block.appendChild(img);
                if(this.getAttribute('title') != null){
                    desc_div = document.createElement("div");
                    desc_div.innerHTML = this.getAttribute('title');
                    preview_block.appendChild(desc_div);
                }
                preview_block.style.visibility = "visible";
            }
            links[y].onmouseout = function () {
                if (preview_block.hasChildNodes()) {
                    while (preview_block.childNodes.length >= 1){
                        preview_block.removeChild(preview_block.firstChild);       
                    } 
                }
                preview_block.style.visibility = "hidden";
            }
        }
    }
}
(Заодно пару вещей поправил).
Теперь при вызове функции можно указать ей несколько div'ов, с которыми она будет работать:
HTML:
<body onload="links('artists_block|artists_block_2')">
P.S.: На стороне php проверяйте, есть ли нужная картинка в нужной папке, и, если нету, не отображайте у ссылки аттрибут "rel". И в папку с картинками положите картинку no_picture.jpg — она будет отображаться вместо несуществующих картинок.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху