Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Самописная галерея


Автор: ThunderJeka 17.3.2010, 21:31
День добрый, я совсем недавно в WEB программировании. Ситуация такая:
Горизонтально в ряд 3 картинки и две ссылки нажатия на которые вызывают скрипт обновляющий эти картинки, типа влево в право.
Код

<table border = "0">
            <tr height = "160">
            <td width = "210">
            <a id = "a1" title = "Щелкните для просмотра увеличенного изображения" href="javascript:void(0);" onclick="return OpenImagePopup('img/v13/0_b.jpg');">
                <img id = "img1" src = "img/v13/0.jpg" height = "150" width = "206" border = "0"
                onmouseover = "this.style.borderWidth='2';this.style.borderColor='#FF0000'" 
                onmouseout = "this.style.borderWidth='0';"
                >
            </a>
            </td>
            <td width = "210">
            <a id = "a2"  title = "Щелкните для просмотра увеличенного изображения" href="javascript:void(0);" onclick="return OpenImagePopup('img/v13/1_b.jpg');">
                <img id = "img2" src = "img/v13/1.jpg" height = "150" width = "206" border = "0"
                onmouseover = "this.style.borderWidth='2';this.style.borderColor='#FF0000'" 
                onmouseout = "this.style.borderWidth='0';"
                >
            </a>
            </td>
            <td width = "210">
            <a id = "a3"  title = "Щелкните для просмотра увеличенного изображения" href="javascript:void(0);" onclick="return OpenImagePopup('img/v13/2_b.jpg');">
                <img id = "img3" src = "img/v13/2.jpg" height = "150" width = "206" border = "0"
                onmouseover = "this.style.borderWidth='2';this.style.borderColor='#FF0000'" 
                onmouseout = "this.style.borderWidth='0';"
                >
            </a>
            </td>
            </tr>
            <tr align = "center">
                <td colspan ="3">
                <a href = "javascript:void(0);" onclick = "return Prev();">
                    <img src = "pic/prev.png" border = "0">
                </a>
                
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                
                <a href = "javascript:void(0);" onclick = "return Next();">
                    <img src = "pic/next.png" border = "0">
                </a>
                </td>
            </tr>
            </table>

Код

function Next()
    {
        i++        
        document.getElementById('img4').src = 'img/sh28/'+ (i%8) + '.jpg'
        document.getElementById('a4').onclick = function()
        {
            OpenImagePopup('img/sh28/'+ (i%8) +'_b.jpg');
        }
        
        document.getElementById('img5').src = 'img/sh28/' + ((i+1)%8) + '.jpg'
        document.getElementById('a5').onclick = function()
        {
            OpenImagePopup('img/sh28/'+ ((i+1)%8) +'_b.jpg');
        }
        
        document.getElementById('img6').src = 'img/sh28/' + ((i+2)%8) + '.jpg'
        document.getElementById('a6').onclick = function()
        {
            OpenImagePopup('img/sh28/'+ ((i+2)%8) +'_b.jpg');
        }
    }


Сложилась такая ситуация что в ИЕ6 картинки не меняеются, а просто исчезают, в других браузерах все работает нормально. Обработчики событий обновляются нормально.


Автор: 12345c 18.3.2010, 17:40
Нет определения OpenImagePopup().

(Если поможет эта догадка и если там  html через ajax передаётся, то отличие ie6 от других в том, что он кеширует одинаковые URL. Надо приписать фиктивный меняющийся параметр к URL в ajax-запрос.)

Автор: ThunderJeka 18.3.2010, 18:49
OpenImage Popup есть я его специально не приводил так как он тут не причем, он отлично работает, проблему решил:

Было:
Код

<a href = "javascript:void(0);" onclick = "return Next();">
                    <img src = "pic/next.png" border = "0">
                </a>


стало
Код

<a href = "javascript:Next();">
                    <img src = "pic/next.png" border = "0">
                </a>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)