Javascript/JQuery:如何重新定义某些东西?
请原谅我的“外行语言”,但我已经为此工作了一整天。我几乎完成了这项定制,但我似乎不能把我的头围绕着这个。我正在使用Soundmanager(播放列表)。脚本中有这样一部分内容:Javascript/JQuery:如何重新定义某些东西?,javascript,jquery,soundmanager2,Javascript,Jquery,Soundmanager2,请原谅我的“外行语言”,但我已经为此工作了一整天。我几乎完成了这项定制,但我似乎不能把我的头围绕着这个。我正在使用Soundmanager(播放列表)。脚本中有这样一部分内容: thisSound._data = { oLink: o, // DOM reference within SM2 object event handlers oLI: oLI, oControls: self.select('controls',oLI),
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(“我的声音”);
controlTemplate.innerHTML=[
//控件标记在每个页面播放器链接后动态插入
//如果您想更改UI布局,这里就是您要做的地方。
' ',
' ',
' ',
'',//以下是“位置”的含义
' ',
' '
].join('\n');
现在,我没有使用Soundmanager为我设置的(..
),而是在页面的某个地方有一个div,我想成为“新”位置(..
)
因此,简而言之,我希望使用my_new_position_div
作为我的进度条,而不是另一个div
在这个Soundmanger脚本中,您如何重新定义“位置”
soundmanager完整脚本:我已经删除了以前的答案。在我发布之后,我意识到这一点根本不起作用。原因是_data属性仅在handleClick事件中首次需要时设置(这是非常糟糕的编码)。我希望我能找到一种方法,尽可能地保持脚本的机智,这样你就不会被别人的手艺的修补版本所困扰。但现在看来,没有其他非侵入性的方法来取代OPOSION线:
oPosition: document.getElementById('my_new_position_div');
您还需要将
更改为
我建议你对这段修补过的代码发表一些重要的评论。这将有助于您或从事此代码工作的其他人将来升级到新版本。我不了解soundmanager,但看起来您只是将oPosition:self.select('position',oLI)
替换为oPosition:self.select('my_new_position_div',oLI)
Thansk@ZackNewsham。这是我尝试的第一件事,但恐怕没用。我猜这是因为脚本在页面加载后创建了这些div(请参见controlTemplate.innerHTML
code块)嗯,这可能是-但也可能是父div-my_sounds div是您创建的-还是soundmanager完成的?@ZackNewshammy_sounds
是包装器(请参见innerHTML
部分)..我可以将它包装在我想要控制进度条的div上,但我已经在同一页面的其他地方使用了它。我只是知道它在尝试之前就可以工作,但不幸的是,它没有。我在控制台中遇到了这个错误无法设置未定义的属性“oPosition”
它可以工作,但拖动进度条似乎不起作用工作。我想我能搞定剩下的。非常感谢:)
oPosition: document.getElementById('my_new_position_div');