Как мне скрыть этот элемент с помощью jquery? - PullRequest
0 голосов
/ 14 марта 2011

Вот HTML-код, отображаемый в браузере. Я хочу скрыть элемент div.embed:

<div id='video_div'>
<img src="http://i3.ytimg.com/vi/fTWpHknumdg/hqdefault.jpg" style="width: 200px; ">
<div class="embed">
<object width="300" height="194">
<param name="wmode" value="opaque"><param name="movie" value="http://www.youtube.com/v/fTWpHknumdg?version=3">
<param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always">
<embed src="http://www.youtube.com/v/fTWpHknumdg?version=3" type="application/x-shockwave-flash" width="300" height="194" allowscriptaccess="always" allowfullscreen="true" wmode="opaque">
</object>
</div>
</div>

Вот код js, который я сейчас запускаю. Это не работает для меня. Однако он работает в jsfiddle, указанном в первом ответе:

$(document).ready(function() {

$('a.oembed').embedly({maxWidth:300,'method':'replace'}).bind('embedly-oembed', function(e, oembed){ 
    $("#video_div").prepend($("<img>", { src: oembed.thumbnail_url, width:200 }));
});

$('div.embed').hide();
});

Может ли быть так, что код скрытия вызывается после загрузки элемента? Как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Нужно ли использовать Javascript, чтобы скрыть DIV?Намного проще сделать это с помощью CSS

div.embed { display: none; }

Обновление

$("#SomeElement").click(function() {
   $("div.embed").toggle();
});

CSS позаботится о начальном состоянии;код Javascript позволит скрыть / показать DIV после этого.

0 голосов
/ 14 марта 2011

Попробуйте объединить их в цепочку.Так что-то вроде этого (используйте children (), чтобы найти внутренний div:

$('a.oembed').embedly(
  {maxWidth:300,'method':'replace'}).bind('embedly-oembed', 
    function(e, oembed){ 
      $("#video_div").prepend($("<img>", {
        src: oembed.thumbnail_url, width:200 })).children("div.embed").hide();
});

Если он всегда предполагается скрытым, просто сделайте это с помощью css.

Обновление:

Попробуйте использовать. load () in $(document).ready():

$('div.embed').load(function() {
  $('div.embed').hide();
});

Это сработает, когда элемент и все в нем будет загружено.

0 голосов
/ 14 марта 2011

Я пытался ( jsfiddle ):

$(document).ready(function() {
   $('div.embed').hide(); 
});

И это прекрасно работает.Возможно, код скрытия вызывается до загрузки элемента в DOM?

...