2013-12-09 67 views
0

剛學習PHP後,我一直在爲自己開發一個小項目。基本上我有一個搜索欄,打印出單詞,它們的含義,我試圖添加一個按鈕來聽到他們說出的話。我有一些JS代碼在點擊圖片時發出聲音,但問題是隻有當我點擊第一張圖片時纔會播放。如果我點擊下面最上面的一個(如何返回我的搜索數據),那麼聲音將無法播放。我如何解決這個問題?JQuery代碼只播放點擊第一個div的聲音

extras.js

var soundPath = ""; 
var picturePath = ""; 

var audio; 

$(document).ready(function() { 
    $('#soundPic').click(function() { 
    console.log("Clicked!"); 
    var soundPath = $(this).attr('title'); 

    console.log(soundPath); 

    var audio = new Audio(soundPath) 
    audio.play(); 
    }); 
}); 

的文件路徑被設置在PHP代碼的圖片標題,然後我檢索與JS代碼。

回答

0

的問題是,你使用ID soundPic。

$(document).ready(function() { 
    $('#soundPic').click(function() { 

所以它只能在ID爲soundPic的一個div上工作。您每個頁面只能有一個帶有soundPic的ID。如果您還沒有課程,請給所有圖片一個sound_pic類或任何你想要的東西。

$(document).ready(function() { 
    $('.sound_pic').click(function() { // and then you just change it to a class 
+0

非常感謝你,這很好! – Kaperly

0

嘗試重置音頻這樣的:

audio.pause(); 
audio.currentTime = 0; 
+0

這不是問題,因爲當我多次點擊第一張圖片時,聲音仍會播放。 – Kaperly

1
$('#soundPic').click(function().... 

這是通過使用一個id選擇器(ID = 「soundPic」)。 ID必須是唯一的,每頁只能有一個。

變化

$('.soundPic').click(function() 

在你的JS,和class = 「soundPic」 在HTML;