Несколько экземпляров Valums File Uploader
Я пытаюсь заставить несколько экземпляров загрузчика файлов valum работать на моем сайте. Он отлично работает с одним экземпляром, но каждый раз, когда я зацикливаюсь на коде инициализации, требуя нескольких кнопок, я не вижу никаких кнопок. Вот код:
<cfoutput query="getTopics">
<script>
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader#refTopicID#'),
action: 'components/ProjectBean.cfc',
params: {method: 'Upload',
topicID: #refTopicID#,
count: #Evaluate("session.#refTopicAbv#Count")#,
topicName: '#refTopicAbv#'
},
encoding: 'multipart'
});
}
// in your app create uploader as soon as the DOM is ready
// don't wait for the window to load
window.onload = createUploader;
</script>
<div class="row" id="file-uploader#refTopicID#">
</div>
Есть идеи, как получить несколько экземпляров? Заранее спасибо!
1 ответ
Вы создаете функцию javascript внутри цикла. Другими словами, вы определяете это несколько раз.
Вместо этого вы должны переместить функцию createUploader за пределы вашего цикла. А внутри цикла просто вызывайте его несколько раз для каждой из ваших тем.
Что-то вроде этого:
<script>
function createUploader(elementID, topicID, topicCount, topicName){
var uploader = new qq.FileUploader({
element: document.getElementById(elementID),
action: 'components/ProjectBean.cfc',
params: {method: 'Upload',
topicID: topicID,
count: topicCount,
topicName: topicName
},
encoding: 'multipart'
});
}
</script>
<cfoutput query="getTopics">
<script>
createUploader('file-uploader#getTopics.refTopicID#', #getTopics.refTopicID#, #session[getTopics.refTopicAbv & "Count"]#, '#getTopics.refTopicAbv#');
</script>
<div class="row" id="file-uploader#getTopics.refTopicID#"> </div>
</cfoutput>
NB: я предполагаю, что все значения взяты из вашего запроса getTopics
поэтому я поставил перед ними префикс с именем запроса, чтобы правильно их охватить. Обычно это не существенно, но это хорошая практика по причинам производительности (среди прочего).