Проблема jQuery append () - PullRequest
       2

Проблема jQuery append ()

0 голосов
/ 09 февраля 2012

У меня есть 2 изображения, одно в качестве фонового изображения и 1 в качестве изображения на переднем плане

CSS выглядит следующим образом:

#backImage{
    position: absolute;
    float: left;
    z-index: 0;
}

#mainImage{
    float: left;
    position: absolute;
    z-index: 1;
    left: 12px;
    top: 10px;
}

Наценка выглядит следующим образом:

<div id="homepageCarousel">
    <img id="backImage" src="discreet images/white_bg.png" />
        <img id="mainImage" src="discreet images/homepage_img1.jpg" />  
    //some other divs
</div>

У меня вверху есть панель навигации,

при наведении курсора на каждый элемент в строке, mainImage должен идти, и должно появиться изображение, соответствующее элементу навигации.

Как я могу сделать это в jQuery, это то, что у меня есть до сих пор: (сейчас я просто пытаюсь remove() и append() mainImage)

$("#navigation li").mouseover(function(){
        $("#mainImage").remove();
    }).mouseout(function(){
        $("#backImage").append("<img id='mainImage' 
           src = 'discreet images/homepage_img1.jpg' />");
});

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Я бы предложил просто изменить атрибут src элемента img, а не добавлять и удалять элементы, так как это дорогостоящие операции для запуска.

0 голосов
/ 09 февраля 2012

Менее дорогая операция - просто скрыть и показать основное изображение:

var $main = $("#mainImage");

$("#navigation li").mouseover(function() {
  $main.hide();
}).mouseout(function() {
  $main.show();
});
0 голосов
/ 09 февраля 2012

Вы удаляете #mainImage из DOM, я верю, поэтому он не может вернуться. Было бы лучше изменить $('#mainImage').style.display на inline или none и наоборот для #backImage и загрузить их обоих.

Удаление их из DOM каждый раз немного неуклюже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...