Javascript / JQuery: как что-то переопределить?

0

Прошу прощения за мой "язык непрофессионала", но я работаю над этим целый день. Я почти сделал это, но я просто не могу обернуться вокруг этого. Я использую Soundmanager (плейлист). Там эта часть в скрипте, которая гласит:

thisSound._data = {
          oLink: o, // DOM reference within SM2 object event handlers
          oLI: oLI,
          oControls: self.select('controls',oLI),
          oStatus: self.select('statusbar',oLI),
          oLoading: self.select('loading',oLI),
          oPosition: self.select('position',oLI), // HERE IT IS
          .......

        };

(Это то, что настроено после завершения загрузки страницы):

controlTemplate = document.getElementById("my_sounds");
controlTemplate.innerHTML = [

      // control markup inserted dynamically after each page player link
      // if you want to change the UI layout, this is the place to do it.

      '  <div class="controls">',
      '   <div class="statusbar">',
      '    <div class="loading"></div>',
      '    <div class="position"></div>', // HERE'S WHAT "oPosition" IS CONNECTING TOO
      '   </div>',
      '  </div>'

    ].join('\n');

Теперь я не использую настройки Soundmanager для меня (<div class="position">...), но вместо этого у меня есть div где-то на странице, который я бы хотел быть "новым" " oPosition (<div class="my_new_position_div">...).

Короче говоря, я хочу использовать my_new_position_div как мой индикатор выполнения, а не другой div.

Как вы переопределяете "oPosition" в этом сценарии Soundmanger?

полный скрипт soundmanager: page_player.js

Теги:
soundmanager2

1 ответ

1
Лучший ответ

Я удалил свой предыдущий ответ. Я понял, что не получится второй после того, как я его разместил. Причина в том, что свойство _data устанавливается только тогда, когда оно сначала необходимо в событии handleClick (это довольно плохое кодирование). Я надеялся, что смогу найти способ как можно больше сохранить сценарий так, чтобы вы не застряли с исправленной версией какой-нибудь удобной работы. Но теперь кажется, что нет другого способа неинтрузивным способом, чтобы просто заменить линию oPosition:

oPosition: document.getElementById('my_new_position_div');

Вам нужно изменить <div class="my_new_position_div"> на <div id="my_new_position_div">.

Я предлагаю вам разместить комментарии по этому исправленному коду. Это поможет вам или кому-то еще работать над этим кодом для обновления до более новых версий в будущем.

  • 0
    Я просто знал, что это сработает, прежде чем даже попробовать, но, к сожалению, это не сработало. Я получаю эту ошибку в консоли. Cannot set property 'oPosition' of undefined
  • 0
    Обновил мой ответ
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню