Javascript/JQuery:如何重新定义某些东西
Javascript/JQuery: How to redefine something?
请原谅我的"外行语言",但我已经为此工作了一整天。我几乎完成了自定义,但我似乎无法解决这个问题。我正在使用声音管理器(播放列表)。脚本中有这样一部分内容:
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">
。
我建议你在这个修补的代码周围放置一些大的评论。这将帮助您或处理此代码的其他人将来升级到较新版本。
相关文章:
- javascript无法重新定义函数内部的全局对象
- 重新定义的变量不;t在AngularJS中绑定
- 在jquery库中重新定义方法的最佳方法
- Javascript重新定义和覆盖现有的函数体
- Angularjs-NgTable在重新加载时未定义
- 如何重新定义ws.send以捕获数据
- 如何重新定义“;javascript类”;
- Javascript:继承原型而不重新定义构造函数
- Tracker重新计算函数出现异常:无法读取属性'0'的未定义
- 使用 Javascript 中的函数重新定义函数
- 理解Javascript中的“未定义”:它是如何工作的,如何安全地检查它以及是否可以重新分配
- 在 JavaScript 中重新定义事件
- 在速度方面,使用变量而不是重新定义jquery对象更好吗
- 为什么我不能重新定义函数'它的原型来自内部
- 销毁并重新加载后无法展开行;无法读取属性'_detailsShow'未定义的;
- 如何在javascript中重新定义私有方法
- 从用户脚本空间重新定义Firefox中的原生浏览器功能
- 承诺的重新定义
- 从自定义元素重新加载聚合物元素或ajax调用
- 重新加载后未应用数据表列定义和重新排序