當我單擊 aspan或div元素時,會播放音頻。該功能還包含.each()防止音頻相互重疊,即當用戶單擊一個單詞時播放音頻,當用戶單擊另一個單詞時,當前音頻停止播放并播放新音頻。問題是,我有過千span或div上我的一些網頁元素,而網頁的作品完美的計算機上,它在移動/更小的設備可怕滯后。網頁在計算機上加載最多需要 2 秒,但在移動/小型設備上需要 15-20 秒。我已經找到了這個.each()函數的罪魁禍首,因為我猜它在加載時會遍歷頁面上的 1000 多個元素,而移動設備無法承受此加載。我正在尋找此問題的解決方案,因為如果我刪除該.each()功能,頁面會在移動設備上快速加載,但隨后會出現(xiàn)音頻重疊問題。任何幫助,將不勝感激。<span data-audio-url="hello.mp3">Hello</span><span data-audio-url="hello.mp3">Hello</span><span data-audio-url="hello.mp3">Hello</span> <div data-audio-url="hello.mp3">Hello</div>$("span, div").each(function(event) { $(this).data('audio-object', new Audio()); }).on('click', function (event, e) { var e = event || window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); var audio_url = $(this).attr('data-audio-url'); $("span, div").each(function() { var audio = $(this).data('audio-object'); if (audio.src) { audio.pause(); audio.currentTime = 0; } }); var clickedAudio = $(this).data('audio-object'); if (!clickedAudio.src) { clickedAudio.src = audio_url; } clickedAudio.play();});
使用 Jquery 的 .each() 函數使網頁在移動設備上滯后
寶慕林4294392
2021-06-28 01:07:19