ошибка вызвана вы пытаетесь получить доступ к переменным dynamicID
откуда-то он не доступен.
Переменные в JS доступны только в функции, которая их определяет, то есть в той части, где вы пишете var something = 'value'
.
поэтому в вашем примере переменная dynamicID
доступна в любом месте внутри этой функции, но не вне ее.
$(document).on('click', '.addvideo', function() {
var dynamicID = $(this).attr('id');
});
console.log(dynamicID) //ReferenceError: dynamicID is not defined
При попытке получить доступ к dynamicID
вне функции вы получите сообщение об ошибке, потому что в принципе не существует там.
Таким образом, вы могли бы переместить функцию, использующую dynamicID
внутри функции, которая определяет его:
$(document).on('click', '.addvideo', function() {
var dynamicID = $(this).attr('id');
$('#'+dynamicID).change(function(){
alert('hi');
});
});
Или доступ к переменной в другом месте вы можете определить его вне функции, присвоить ему значение в поле и затем получить доступ к нему из другого места.
var dynamicID;
$(document).on('click', '.addvideo', function() {
dynamicID = $(this).attr('id');
});
console.log(dynamicID) //this will log the ID value provided the element has been clicked
это в совершенно другой области, поэтому вы сталкиваетесь с проблемами. У меня есть вопрос: почему вы хотите повторно выбрать элемент, который у вас уже есть? Вы могли бы просто сохранить ссылку на узел DOM и не должны повторно выбирать. – zzzzBov