2013-03-16 15 views
5

To jest mój pierwszy post na forum. Tworzę stronę kursu języka angielskiego/tajskiego, która będzie zawierać wiele plików audio z mową angielską i tajlandzką. Zrobiłem jedną stronę z potwierdzeniem koncepcji za pomocą funkcji javascript najedź myszką/przyciskami http://www.javascriptkit.com/script/script2/soundlink.shtml W przypadku niektórych modów i niektórych wbudowanych js działało to OK.Przenoszenie javascript audio do jquery

$(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");  
}); 

kod JavaScript jest nazywany przez linię kodu html tak:

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

Chcę włączyć tę funkcję i związane z nim zmienne do jQuery. aby cały kod js został usunięty z html. Pierwszym krokiem było sprawdzenie, czy kod jquery zadziałał. Próbowałem po prostu włączając kod js audio w funkcji gotowości dokumentu. jak pokazano powyżej, ale to nie działa. Każda pomoc byłaby bardzo cenna.

+0

Spójrz tutaj http : //stackoverflow.com/questions/6830445/extending-jquery – Bart

Odpowiedz

3

Nie jestem pewien, czy ja cię dobrze, ale można usunąć kodu javascript z podanego linku bardzo łatwo:

$('.rollover').click(function(){ 

ry402.playclip(); 

}); 

Rzućmy okiem na: http://api.jquery.com/click/

+0

MeierI wstaw ten kod do jq_click.js i umieść go w następujący sposób: RoyS

+0

to nie działa, umieszczam kod w $ (document) .ready (function() {} i umieszczam go w sekcji head pod skryptem ładującym jquery. Przepraszamy za podwójny wpis, nie znam forów Stack Overflow – RoyS