Я Js Newbie.
Я пытаюсь установить свойство Plupload следующим образом.
$(function () {
var myUrl = "https://" + $('input#hfBucketName').val() + $('input#hfEndPoint').val();
$("#uploaderdiv").plupload({
runtimes: 'html5,flash,silverlight',
url: myUrl,
//Removed for simplicity
});
});
Это дает мне Upload URL might be wrong or doesn't exist.
при попытке загрузить файлы.
Я предполагаю, что я не могу присвоить свойство url
плагина, используя рассчитанную переменную.
На консоли Chrome, когда я myUrl
после завершения загрузки страницы, я получаю ReferenceError: myUrl is not defined
Но когда я набираю (на консоли) var myUrl = "https://" + $('input#hfBucketName').val() + $('input#hfEndPoint').val();
и тогда myUrl
дает мне значение, которое я ожидаю.
Как я могу присвоить свойство myUrl
url
для плагина? Где я ошибаюсь?
РЕДАКТИРОВАТЬ
Сожалею. Я ошибся с включением моего кода в вопрос. Теперь я исправил свой блок кода. На самом деле все обернуто внутри $(function() { });
, но до сих пор не решает мою проблему.
Переместите myUrl внутри:
$(function () {
var myUrl = "https://" + $('input#hfBucketName').val() + $('input#hfEndPoint').val();
$("#uploaderdiv").plupload({
runtimes: 'html5,flash,silverlight',
url: myUrl,
//Removed for simplicity
});
});
$(function() { });
запускается, когда документ готов.
Вы пытаетесь получить доступ к значению элементов, которые еще не загрузились. $(function() {});
является сокращением jQuery для события document.ready. Перемещение объявления переменной myUrl в функцию готовности документа должно устранить вашу проблему:
$(function () {
var myUrl = "https://" + $('input#hfBucketName').val() + $('input#hfEndPoint').val();
$("#uploaderdiv").plupload({
runtimes: 'html5,flash,silverlight',
url: myUrl,
//Removed for simplicity
});
});
myUrl
после его объявления?