Javascript/JQuery:如何重新定义某些东西

Javascript/JQuery: How to redefine something?

本文关键字:定义 何重新 JQuery Javascript      更新时间:2023-09-26

请原谅我的"外行语言",但我已经为此工作了一整天。我几乎完成了自定义,但我似乎无法解决这个问题。我正在使用声音管理器(播放列表)。脚本中有这样一部分内容:

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"?

完整的声音管理器脚本:page_player.js

我已经删除了我之前的答案。我意识到这在我发布后一秒钟就行不通了。原因是因为 _data 属性仅在 handleClick 事件中首次需要时才设置(这是非常糟糕的编码)。我希望我能找到一种方法来尽可能保持脚本的完整性,这样你就不会被别人方便的工作的修补版本所困扰。但是现在似乎没有其他方法可以非侵入性方法,只需将oPosition行替换为:

oPosition: document.getElementById('my_new_position_div');

您还需要将<div class="my_new_position_div">更改为<div id="my_new_position_div">

我建议你在这个修补的代码周围放置一些大的评论。这将帮助您或处理此代码的其他人将来升级到较新版本。