2014-06-23 48 views
1

我想將不同的選擇器放在一個頁面上,並使用不同的擴展選項。所以我插入<div class="dropbox-chooser"></div>到我網站的不同位置。然後,我寫了下面的功能,我的頭(用於測試):添加許多具有不同擴展名的Dropbox選擇器不起作用

window.onload = function() { 
if (document.getElementsByClassName("dropbox-chooser")) { 

for(var i = 0; i < document.getElementsByClassName("dropbox-chooser").length; i++){ 
if (i === 0) { 
options.extensions = ['.zip','.exe','.rar','.7zip','.php','.html','.css','.js'];['.3gp','.3gpp','.3gpp2','.avi','.mov','.mp4','.wmv','.m4v','.mpg','.mkv','.mpeg','.vob','.flv','.mts','.m2t','.ts','.dv']; 
button = Dropbox.createChooseButton(options);alert(options.toSource()); 
document.getElementsByClassName("dropbox-chooser")[i].appendChild(button); 
} 
if (i === 2) { 
options.extensions = ['.3gp','.3gpp','.3gpp2','.avi','.mov','.mp4','.wmv','.m4v','.mpg','.mkv','.mpeg','.vob','.flv','.mts','.m2t','.ts','.dv']; 
button = Dropbox.createChooseButton(options);alert(options.toSource()); 
document.getElementsByClassName("dropbox-chooser")[i].appendChild(button); 
} 
} 
} 
} 

和兩個挑肥揀瘦在正確的地方被渲染,但是當我點擊選擇器按鈕之一,擴展選項總是最後一個( .3gp ...),儘管options.toSource()函數爲每個按鈕顯示正確的對象內容。

你能幫我嗎? 非常感謝!

丹尼斯

回答

0

我相信選配不看options對象,直到選配實際上打開。

您應該每次只傳入一個不同的對象。

編輯

這裏是我建議:

var choosers = document.getElementsByClassName('dropbox-chooser'); 
for (var i = 0; i < choosers.length; i++) { 
    var options = { 
     // ... 
    }; 
    if (i === 0) { 
     options.extensions = ['.zip', '.exe' /* ... */]; 
    } elif (i === 2) { 
     options.extensions = ['.3gp', '.3gpp' /* ... */]; 
    } 
    choosers[i].appendChild(Dropbox.createChooseButton(options)); 
} 
+0

確定。有沒有辦法用onclick方法注入選項對象,重複或類似的東西,還是我真的必須單獨創建所有選項我的頭文件腳本? – user3767225

+0

看起來像你可以輕而易舉地把該代碼放在循環中。我會用一個例子更新我的答案。 – smarx

相關問題