首页 > 解决方案 > 让全局变量在函数中使用

问题描述

我正在使用这段代码来播放和暂停几个音频:

jQuery(document).ready(function(){
  var getaudio;
  var audiostatus = 'off';
  var current_id;
  jQuery(document).on('click touchend', '.speaker', function() {
    elemento = jQuery(this);
    current_id = elemento.children("audio").attr("id");
    clase = current_id.replace(/player/, '');

    if (!jQuery('.c'+clase).hasClass("speakerplay")) {
       getaudio = jQuery('#'+current_id)[0];
       if (audiostatus == 'off') {
         jQuery('.c'+clase).addClass('speakerplay');
         getaudio.load();
         getaudio.play();
         audiostatus = 'on';
         return false;
     } else if (audiostatus == 'on') {
       jQuery('.c'+clase).addClass('speakerplay');
       getaudio.play()
     }
   } else if (jQuery('.speaker').hasClass("speakerplay")) {
     getaudio.pause();
     jQuery('.c'+clase).removeClass('speakerplay');
     audiostatus = 'on';
   }
  });

  // Here is my problem: I need to get the value of current_id...
  jQuery('#'+current_id).on('ended', function() {
    jQuery('.speaker').removeClass('speakerplay');
    audiostatus = 'off';
  });
});

在最后一个函数中,一旦音频结束,我想删除类“speakerplay”,但我无法获得 current_id 的值

有人可以帮我吗?

提前致谢!

标签: javascriptglobal-variables

解决方案


不要使用 var current_id;

直接使用 window.current_id

window.current_id = elemento.children("audio").attr("id");

jQuery('#'+window.current_id).on('ended', function() {

推荐阅读