2013-05-30 1 views
0

Привет, я загрузил div с изображением с помощью jquery. Другие div внутри него исчезают. вот CSS, когда div загружен изображением, используя jquery, другой div внутри него исчезает. Почему это происходит?

.d1 
    { 
    position:fixed; 
    z-index:999999; 
    } 
.d2 
    { 
    position:absolute; 
    background:green; 
    } 

это линия я использовал, чтобы загрузить изображение в d1

jQuery(".d1").html(jQuery("<img>").attr("src",eee)); 

с CSS

<div class="d1"> 
<div class="d2"> 
Text 
<script type="text/javascript"> 
jQuery(function ($){ 
jQuery("img").click(function($) { 
var eee = jQuery(this).attr('src'); 
jQuery(".d1").html(jQuery("<img>").attr("src",eee)); 
}); 
}); 
</script> 
</div> 
</div> 

, когда я запускаю это я не могу в состоянии найти текст от d2 , но когда я запускаю это без скрипта, значит, tex t видно от d2. Я не знаю, является ли это проблемой или ошибкой jquery. d2 исчезает, когда я нажимаю любое изображение, но оно не должно исчезать до моей точки. Перед тем, как нажать любое изображение. d2 есть ли я вижу это различие, используя firebug. Кто-нибудь знает, в чем проблема?

ответ

4

Это происходит потому, что вы находитесь содержание .d1 с использованием метода .html(). поэтому все, что было там раньше, получает заменено.

+0

Спасибо за ваш понятный ответ мне:) Gun Foo. прежде чем я не знаю, почему это происходит сейчас, я понял. – sun

+0

Добро пожаловать. –

+0

снова какая-то проблема, если я нажимаю изображение ** d1 ** добавляется с этим изображением, но если я снова нажму на другое изображение, оно добавится с другим изображением. Он продолжает увеличивать b'coz, мы добавляем права. Есть способ добавить только один изображение, которое является текущим изображением? – sun

1

Изменить эту строку:

jQuery(".d1").html(jQuery("<img>").attr("src",eee));

с этой линии:

jQuery(".d1").append(jQuery("<img>").attr("src",eee));

Примечание append, используя html вы заменяете содержание html из .d1.

1

С .html(), Вы заменяете действующий HTML-код на img.

Используйте .append(), чтобы добавить изображение после div

ИЛИ

Используйте .prepend(), чтобы добавить изображение beforethe div

+0

Кто-нибудь знает, почему ссылка на 'prepend' не работает? В любом случае, информация здесь: http://api.jquery.com/prepend/ –

1
<div class="d1"> 
    <div class="d2">Text</div> 
</div> 

<script type="text/javascript"> 
    jQuery(function ($){ 
     jQuery("img").click(function($) { 
      var eee = jQuery(this).attr('src'); 
      jQuery(".d1").append(jQuery("<img>").attr("src",eee)); 
     }); 
    }); 
</script> 

Удалить скрипт внутри DIV , это хорошая практика.

+0

Причина в том, что он заменяет содержание html содержимого d1. Я согласен с тем, что сценарий должен находиться вне html-кода, но это не решит проблему. Используйте '.append', чтобы добавить изображение после div d2. – Ronald

+0

любая конкретная причина для размещения скрипта после ** div **? или для четкого написания вы предлагаете это? – sun

+0

@Littlefool Больше, чем «полное решение», это была рекомендация для лучшей практики кодирования и завершения самого высокого рейтинга. Btw 'append' является частью моего кода в любом случае, если вы посмотрите ближе, так что то, что вы предлагаете, уже лежит там;). @raj, как я считаю, именно «div» является вашим «представлением» в этом случае, поэтому вы должны управлять им отдельно от

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