2013-03-16 15 views
5

Bu, forumdaki ilk gönderiim. İngilizce ve Türkçe konuşulan birçok ses dosyasını içeren bir İngilizce/Tay dili kursu kuruyorum. Bir mouseover/button javascript işlevi kullanarak tek bir web sayfası kanıtı yaptım http://www.javascriptkit.com/script/script2/soundlink.shtml Bazı modlar ve bazı satır içi j'ler ile, bu Tamam çalıştı.javascript sesini jquery'ye taşıma

$(document).ready(function() { 
    var html5_audiotypes = { 
    "mp3": "audio/mpeg", 
    "ogg": "audio/ogg", 
    };  
function createsoundbite(sound) { 
    "use strict"; 
    var html5audio = document.createElement('audio'); 
    if (html5audio.canPlayType){ 
    for(var i=0; i<arguments.length; i++) { 
    var sourceEl = document.createElement('source'); 
    sourceEl.setAttribute('src', arguments[i]); 
    if (arguments[i].match(/\.(\w+)$/i)) 
    sourceEl.setAttribute('type', html5_audiotypes[RegExp.$1]); 
    html5audio.appendChild(sourceEl); 
    } 
    html5audio.load(); 
    html5audio.playclip = function() { 
    html5audio.pause(); 
    html5audio.currentTime=0; 
    html5audio.play(); 
    } 
    return html5audio; 
    } 
    else{ 
    return {playclip:function(){throw new Error("Your browser doesn't support  HTML5 audio unfortunately")}}; 
    } 
    } 
    var cn402=createsoundbite("audio/cn402.ogg", "audio/cn402.mp3"); 
    var ry402=createsoundbite("audio/ry402.ogg", "audio/ry402.mp3");  
    var cn403=createsoundbite("audio/cn403.ogg", "audio/cn403.mp3");  
    var ry403=createsoundbite("audio/ry403.ogg", "audio/ry403.mp3");  
    var cn404=createsoundbite("audio/cn404.ogg", "audio/cn404.mp3");  
    var ry404=createsoundbite("audio/ry404.ogg", "audio/ry404.mp3");  
}); 

javascript kodu böyle html kod çizgiyle denir:

<a href="#current" class= "rollover" onclick="ry402.playclip()"></a>Please don't swim by yourself</span> 

Ben bu işlevi ve jquery içine ilişkili değişkenleri dahil etmek istiyorum. Böylece tüm js kodu html'den kaldırılır. İlk adım, sadece jquery kodunu işe almak benim için biraz problemli oldu. Sadece js ses kodunu bir belgeye hazır fonksiyonda denedim. Yukarıda gösterildiği gibi ama bu işe yaramıyor. Herhangi bir yardım çok takdir edilecektir.

+0

Look:

$('.rollover').click(function(){ ry402.playclip(); }); 

evinde bir bakalım : //stackoverflow.com/questions/6830445/extending-jquery – Bart

cevap

3

seni sağ olsun emin değilim ama çok kolay verilen bağlantıdan javascript kodu kaldırabilirsiniz: http buraya http://api.jquery.com/click/

+0

MeierI kodu jq_click.js içine koydu ve şu şekilde konumlandırdı: RoyS

+0

bu işe yaramaz, kodu $ (document) .ready (function() {} içine koydum ve betik yükleme jquery'inin altındaki başlık bölümüne yerleştirdim. Çifte yazı için özür dilerim, Stack Overflow forumlarına aşina değilim – RoyS