2012-03-05 2 views
1

Эта проблема выглядит простой, поэтому mea culpa заранее, если это плохой этикет, чтобы спросить об этом.Проблемы с дисплеем div

У меня есть некоторые divs внутри div панели панели вкладок, который установлен для отображения.

<div id="fragment-5a" class="ui-tabs-panel" style="display: block;"> 
    <div id="mainpic"> 
    <img align="middle" alt="somewhere" 
    src="http://localhost/gopag3/projects/somest.jpg"></div> 
<div id="altpic"><img src="#"></div> 
<div id="mainpicblurb">texttexttext</div></div> 

Один ДИВ 'mainpic' держит IMG. Второй 'mainpicblurb' содержит текст и ссылки внутри под-div 'piclinks'. Div 'altpic' пуст и скрыт (отображение: нет), но в остальном точная копия «mainpic».

Я пытаюсь написать скрипт, который выполняет следующие действия:

  1. кожсырья mainpic "
  2. грейферы HREF (IMG SRC) и добавляет его в качестве IMG SRC для 'altpic'
  3. шоу" altpic '

Вот что я сделал.

$(document).ready(function() { 
    $('#piclinks div a').click(function() { 
     var link = $(this).attr('href'); 
     $('#mainpic').hide(); 
     $('#altpic img').replaceWith('<img align="middle" src="' + link + '">'); 
     $('#altpic').show(); 
    return false; 
    }); 
}); 

Это не работает в целом. Хреф успешно схвачен. Img src успешно сбрасывается в «altpic» и «return false» работает нормально, но ни «mainpic», ни «altpic» не имеют нужного атрибута отображения.

Возможно, вкладки CSS переопределяют все, что я делаю, хотя смотрю на него в Firebug. Я не вижу, как это сделать.

Совершенно возможно, что приведенная выше длинная цепочка ревунов. Мой инстинкт кишки заключается в том, что процесс отбора неверен. Мне нужно пересечь DOM из #piclinks div, чтобы сохранить дерево, чтобы собрать в #mainpic и #altpic, используя parent() и siblings(), возможно.

В любом случае, предложения/понимание критики приветствуются.

Том

+0

указывает ссылка на 'img'? Каков путь? Почему бы вам не попробовать просто изменить 'attr'' img' вместо создания нового? jQuery создает CSS встроенный, поэтому он не может быть переопределен с помощью правила CSS, насколько я знаю ... – Maroshii

+0

Код, который вы отправили, отлично. См. [Эта скрипка] (http://jsfiddle.net/j9kxk/). Что ты пытаешься сделать? –

+0

Thx S0pra - скрипка полезна. – Tom

ответ

0

CSS скрытие для данного идентификатора может быть проблемой. Попробуйте добавить класс скрытым для altpic:

<div id="fragment-5a" class="ui-tabs-panel" style="display: block;"> 
    <div id="mainpic"> 
    <img align="middle" alt="somewhere" 
    src="http://localhost/gopag3/projects/somest.jpg"></div> 
<div id="altpic" class="is-hidden"><img src="#"></div> 
<div id="mainpicblurb">texttexttext</div></div> 

продожайте удалить класс, чтобы получить DIV видимую:

$(document).ready(function() { 
    $('#piclinks div a').click(function() { 
     var link = $(this).attr('href'); 
     $('#mainpic').hide(); 
     $('#altpic img').attr({'align':"middle",'src':link}); 
     $('#altpic').removeClass('is-hidden') 
    return false; 
    }); 
}); 

в CSS оных:

.is-hidden {display:none;} 

и удалить дисплей: нет; для #altpic

+0

Thx. Я пробовал свой сценарий без радости. Это не проблема img src или href или по умолчанию. Это дисплей div, который не ведет себя. – Tom

+0

Вы имеете в виду, что #altpic не отображается? В этом случае вы можете указать, как он скрыт в первую очередь? Использование CSS или JQuery? – Nicocube

+0

CSS. #altpic не отображается. И #mainpic не скрыт. Если я переключу селектор на #mainpic img, то img будет скрыт, но этого недостаточно. – Tom

0

Вы должны использовать

$('#mainpic img').hide(); 
    $('#altpic img').show(); 

иначе вы скрытие/показ DIV

+0

Спасибо. Если содержащий div div, т. е. #mainpic, все еще отображается, и имеет сплошной фон, вы не увидите только сплошной визуализированный фон? – Tom

+0

@ То, что должно быть вывод –

+0

Ahh - в этом случае у меня должна быть неправильная разметка для #altpic Как я могу гарантировать, что она не скрыта видимым фоном #mainpic? – Tom

Смежные вопросы