HTML:
<select class="dynamicSelects">
....
</select>
JS:
var generatePrice = function() {
alert(this.value);
};
$(document).ready(function() {
$('body').on('change', '.dynamicSelects', generatePrice);
});
Это пример использования on
методов, предоставляемых JQuery и делегирование событий. Это означает, что даже если эти выпадающие файлы не находятся в DOM, но вы все равно можете присоединить к нему событие, и всякий раз, когда они существуют в DOM, событие срабатывает. В основном это говорит о прикреплении этих событий к телу, но срабатывание элементов с классом dynamicSelects
. Это включает в себя добавление любых других динамически сгенерированных выпадающих списков с этим классом позже.
Установка атрибутов для прикрепления событий, в то время как это может сработать, должно быть действительно выполнено с использованием метода или в простом JS addEventListener
, на мой взгляд.
Также при работе на простых элементах DOM свойство value не является функцией, поэтому не требуется value()
. Только this.value
. И вам не нужно преобразовывать его в строку, потому что значение возвращает строку. Если бы это был объект jquery, вы можете сделать $(this).val()
, который является функцией.
Я предлагаю это изменение конечно, потому что, если вы собираетесь использовать библиотеку, например, jQuery, по крайней мере, воспользоваться теми предложениями, которые она предлагает.
Не должен ли атрибут быть заменен? –
Можете ли вы попробовать с '' onchange ''insted of' "change" ' –
Разве вы не используете ненавязчивый' on() 'вместо атрибута? И что это за метод 'value()', который вы вызываете? –