Скрипт не запускается после загрузки div с помощью ajax

У меня есть скрипт audiojs для изменения стиля тега audios в html, когда я захожу на свою страницу, он работает без проблем, но когда я нажимаю кнопку, чтобы перезагрузить div (этот div содержит теги audio) с функцией load jQuery, стиль audiojs удален Я пытался получить скрипт после загрузки div с помощью jQuery getScript, но скрипт загружался много раз, что вызывало остановку моего браузера.

это функция для вызова audiojs

audiojs.events.ready(function() {
  audiojs.createAll();
});

Я хочу, чтобы решение вызывало эту функцию не более одного раза, спасибо

3 ответа

Решение

Спасибо всем,

я нашел решение,

после загрузки div с помощью ajax я добавил этот код для удаления класса audiojs

$("audio").removeClass("audiojs");

Трудно понять без какой-либо ссылки на библиотеку audio.js, но большинство API или библиотек будут давать некоторые указания на то, что они загружены. Я бы использовал оператор if, чтобы создать что-то вроде:

(function () {
 function checkForLoaded(){
   if (audiojs.state !== null) { //or something similar
      audiojs.createAll();
   }
 }
})();

Попробуйте добавить новый тег сценария в сценарий, чтобы повторно загрузить в ваш код что-то вроде следующего:

 <script language="text/javascript">
   function audiojs()
   {
      var div= document.getElementsByTagName('head')[0];
      var script= document.createElement('script');
      script.type= 'text/javascript';
      script.src= 'audiojs.js';
      div.appendChild(script);
   }
   audiojs();
</script>

Я надеюсь, что вы получите некоторые идеи сейчас. Также проверьте свое кеширование.

Другие вопросы по тегам