2016-04-05 17 views
1

newer dev burada.JQuery'yi Birden Fazla HTML Öğesi için Yeniden Kullanmak

Aynı JQuery tarafından oluşturulan bir sayfada birden çok öğe var. Her öğe, onunla ilişkili uygun içeriğe sahip yüklenir, ancak herhangi bir işlev - bu durumda farklı parçalara tıklar - içeriği son kümeden çekin. Şu ana kadar yaptığım araştırmam, bunun bir Yarış Koşulları vakası olduğuna inanmamı sağlıyor.

Burada bir codepen - soldaki iki oyuncudaki şarkı başlıklarından herhangi birine tıklayarak resimlerin, şarkı adlarının, sanatçı adlarının ve .mp3 verilerinin # player-3'ten nasıl çekildiğini görebilirsiniz. peşin https://gist.github.com/hisasann/337283

Çok teşekkürler:

$("#player-2").jAudio({ 
    playlist: [{ 
      file: "http://spindrop.io/audio/forgetme.mp3", 
      thumb: "http://spindrop.io/images/ar.jpg", 
      trackName: "Hungry", 
      trackArtist: "American Royalty", 
      trackAlbum: "Prismatic EP", 
    }, { 
      file: "http://spindrop.io/audio/mistakes.mp3", 
      thumb: "http://spindrop.io/images/ar.jpg", 
      trackName: "Red", 
      trackArtist: "American Royalty", 
      trackAlbum: "Prismatic EP", 
    }, { 
      file: "http://spindrop.io/audio/riverbed.mp3", 
      thumb: "http://spindrop.io/images/ar.jpg", 
      trackName: "Lifeline", 
      trackArtist: "American Royalty", 
      trackAlbum: "Prismatic EP", 
    }] 
}); 
$("#player-3").jAudio({ 
    playlist: [{ 
      file: "../audio/staticheart.mp3", 
      thumb: "../images/geo.jpg", 
      trackName: "Family", 
      trackArtist: "Geographer", 
      trackAlbum: "Animal Shapes", 
    }, { 
      file: "../audio/taillights.mp3", 
      thumb: "../images/geo.jpg", 
      trackName: "Looping", 
      trackArtist: "Geographer", 
      trackAlbum: "Animal Shapes", 
    }, { 
      file: "../audio/theline.mp3", 
      thumb: "../images/geo.jpg", 
      trackName: "Sonic", 
      trackArtist: "Geographer", 
      trackAlbum: "Animal Shapes", 
    }] 
}); 

http://codepen.io/kylebillings/pen/BKmZJx

&

burada jquery olmayan bir minified sürümü için bir bağlantı var. Bir şey öğrenmeye minnettarım.

+0

Kullandığınız ses eklentisinin bağlantısı var mı? – Derlin

+0

@Derlin Yukarıda bir düzenleme yaptım. İşte karşılaştığım komut dosyasının en net versiyonu. https://gist.github.com/hisasann/337283 –

+0

Tamam, ama değiştirdiniz mi? İndirgenmiş versiyonu nereden geliyor? – Derlin

cevap

0

Tamam, hatayı öğrendim (bir başkasının, kodunuzu hata ayıklamak için sorduğunuzda en iyi yol olmasa bile).

hata hattı üzerinde: r varsayılan argümanlar içeriyor ise

this.settings = t.extend(!0, r, a) 

a, verilen Playlist içerir. Neden olduğundan emin değilim, ancak bu satırdan sonra günlüğünüz settings değişkenine sahipse, tüm ayarların aynı çalma listesine sahip olduğunu görürsünüz.

Olası düzeltmeler:

  1. takas a ve r:

    this.settings = t.extend(!0, a, r) 
    

    jQuery doc Gönderen:

    $ .extend() tarafından gerçekleştirilen birleştirme yoluyla özyinelemeli değil varsayılan; İlk nesnenin bir özelliği bir nesne veya dizi ise, ikinci veya sonraki nesnede aynı tuşa sahip bir özellik tarafından tamamen üzerine yazılır.

  2. kullanım yerine bu biri için !0 (yani yanlış) ait {}, hala anlamaya çalışıyorum. Sanırım, recursive birleşmesiyle ve konsolda bunun bir nesne yerine bir işlev döndürmesiyle ilgilidir. Anladığım kadarıyla düzelteceğim.

+0

Sinir bozucu kodlara rağmen yardımlarınız için sonsuz teşekkürler. Minified dosyasını dökümantasyona, hatta küçültülmüş olmayan bir versiyona başvurmadan buldum. Görgü kurallarım bununla iyileşecektir. Teşekkürler!! –

+0

Bir şey değil! Cevabı iptal etmeyi ve soruyu cevaplandı olarak işaretlemeyi unutmayın. Mutlu kodlar! – Derlin