Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/JQuery:如何重新定义某些东西?_Javascript_Jquery_Soundmanager2 - Fatal编程技术网

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

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),

请原谅我的“外行语言”,但我已经为此工作了一整天。我几乎完成了这项定制,但我似乎不能把我的头围绕着这个。我正在使用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(“我的声音”);
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完成的?@ZackNewsham
my_sounds
是包装器(请参见
innerHTML
部分)..我可以将它包装在我想要控制进度条的div上,但我已经在同一页面的其他地方使用了它。我只是知道它在尝试之前就可以工作,但不幸的是,它没有。我在控制台中遇到了这个错误
无法设置未定义的属性“oPosition”
它可以工作,但拖动进度条似乎不起作用工作。我想我能搞定剩下的。非常感谢:)
oPosition: document.getElementById('my_new_position_div');