2013-09-21 26 views
0

請原諒我的「外行語言」,但我一直在這一整天工作。我幾乎完成了這個定製,但我似乎無法繞過這個。我正在使用Soundmanager(播放列表)。有這部分在讀劇本:Javascript/jQuery:如何重新定義一些東西?

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。

你如何在這個Soundmanger腳本中重新定義「oPosition」?

全SoundManager類中的腳本:page_player.js

+0

我不知道soundmanager,但它看起來像你只是用'oPosition:self.select('my_new_position_div',oLI)'替換'oPosition:self.select('position',oLI)' –

+0

Thansk @ ZackNewsham。那是我嘗試的第一件事,但恐怕它不起作用。我猜這是因爲腳本在頁面加載後創建了這些div(請參閱'controlTemplate.innerHTML'代碼塊) – goo

+0

嗯,這可能是它 - 但它也可以是父div - 是您創建的my_sounds div - 或者聲音管理者完成的事情? –

回答

1

我刪除我以前的答案。我意識到,我發佈後不會工作。之所以會這樣,是因爲_data屬性只是在handleClick事件中首先需要時才被設置(這是非常糟糕的編碼)。我希望能找到一種方法儘可能地保持腳本的完整性,所以你不會遇到一些補丁版本的某些人的方便工作。但現在看來,有沒有其他的方法非侵入性的方式,然後只需更換與oPosition行:

oPosition: document.getElementById('my_new_position_div'); 

您需要更改<div class="my_new_position_div"><div id="my_new_position_div">也。

我建議你圍繞這個補丁代碼發表一些大的評論。這將有助於您或者其他正在使用此代碼的人將來升級到更新版本。

+0

我只是在嘗試之前就知道它會工作,但不幸的是,它沒有。我得到這個錯誤在我的控制檯'不能設置屬性'oPosition'未定義' – goo

+0

更新我的回答 –

+0

它的工作原理,但拖動欄似乎並沒有工作。我想我可以弄清楚其餘的。謝謝一堆:) – goo

相關問題