Jquery kullanarak video Posterini nasıl değiştirebilirim?

Bir video listesi çalışması yapıyorum. Bu, üç farklı kimlikleri ile üç bağlantı vardır. Kullanıcı bağlantıyı tıkladığında, videonun videosu ve posteri değişmelidir. Benim jQuery kodumu kullanırken, video değişiyor ama attr "poster" hiç değişmiyor ... herhangi bir nedenden? Bu benim kullandığım kod ...

video HTML kodu:


Benim jQuery kodum:

$('div.video-box-area img').click(function(){
    var nowSrc = $('video').attr('src');
    var change = nowSrc.replace(nowSrc.substr(12,1),$(this).parent().attr('id').substr(length-1));

    var poster = $('video').attr("poster");
    var posterChange = poster.replace(poster.substr(12,1),$(this).parent().attr('id').substr(length-1));

    $('video').attr("poster",posterChange);
    $('video').attr('src',change);

    return false;
});
2
BTW, aradığınız cevap olmasa da, tüm öznitelik değerlerinizi, hesaplamadan önce $ (this) .parent (). Attr ('id') dahil olmak üzere hesaplamadan önce gruplandırırdım. Şu anda her iki hesaplama da jQuery'yi yavaşlatmak için DOM'a doğru ilerlemesini gerektirecektir. Kimliği bir kez okuyun, ardından gerektiği gibi kullanın. Ayrıca, tam işaretlemeyi sağlamadığınız için, bunu hata ayıklamaya yardımcı olmak imkansızdır. Biz sadece (bu) .parent (). Attr ('id') neye benzediğini tahmin ediyoruz. Bu, yerine koyma ifadelerinizde hata ayıklamayı zorlaştırır.
katma yazar BenSwayne, kaynak

3 cevap

HTML5 video özelliklerine göre, poster video verisi yokken görüntüleniyorsa (videonun readyState özniteliği ya HAVE_NOTHING ya da HAVE_METADATA'dır, ancak hiçbir video verisi henüz elde edilmemişse ya da öğenin readyState özniteliği sonraki herhangi bir değerdir) ancak medya kaynağının bir video kanalı yoktur). Video duraklatıldığında ve geçerli oynatma konumu videonun ilk karesi olduğunda, eleman, tarayıcılara bağlı olarak geçerli izleme konumuna veya poster çerçevesine karşılık gelen video çerçevesini temsil eder.

Durumunuzda, video verisi muhtemelen mevcut, bu yüzden posteri oluşturulmaz. Bana canlı bir demo verirseniz, sorunu araştırmanıza yardımcı olabilirim.

2
katma

Ben tagname kullanarak öznitelik doğrudan erişebilirsiniz sanmıyorum.

Yönlendirdiğim, $ ('video') etiketiniz, sayfanızdaki tüm etiketlerin bir dizisini döndürmesi gereken deneyimime göre, eğer varsa, ile eşleştirmelisiniz Bunun yerine kimlik .

Bu bir olasılık değilse ve sayfadaki tek bir video etiketinin olduğundan eminseniz, $ ('video') [0] gibi bir şey yapabilirsiniz, ancak bu iyi bir çözüm değildir.

Can you post your entire code, including the <div class="video-box-area">?

1
katma

Az önce bir az şey denedim ve jQuery çağrılarınız iyi görünüyor. Görebildiğim tek şey, posterChange değişkeninin aslında posterValue == '' olması. Dize boşsa, attr değiştirilmez.

PosterChange değişkenini hesapladıktan sonra bir uyarı yapın ve boş olup olmadığını görün ...

0
katma
Poster URL'leri değişiyor. ama hiçbir şey güncelleniyor ki sorun bu ..!
katma yazar 3gwebtrain, kaynak
lütfen bütün kodu yazınız. Yukarıdaki örnek parçanızı çalıştırmayı denedim [1] (bağımsız çalışabilmeli) ama her zaman ... var change = nowSrc.replace ... . [1]: jsfiddle.net/FNxZA/2
katma yazar g19fanatic, kaynak