Nano Hash - криптовалюты, майнинг, программирование

Нет событий для динамически генерируемых входных тегов

Я динамически сгенерировал некоторые входные теги для веб-приложения.

function FormElement () {
    
    this.formElement = $('<div class="formElement"></div>');
    this.formElement.append('<label for=""></label>');
    this.formElement.append('<input type="text" />');

    FormElement.prototype.addIds = function (id) {
        this.formElement.find('label').attr({'for':id});
        this.formElement.find('input').attr({'id':id});
        return this.formElement; 
    };
    FormElement.prototype.addLabelText = function (value) {
        this.formElement.find('label').html(value);
    };
    FormElement.prototype.addInputValue = function (value) {
        this.formElement.find('input').attr({'value':value});
    };
    FormElement.prototype.addClass = function (className) {
        this.formElement.attr({'class':className});
    };
    FormElement.prototype.append = function (selector) {
        $(selector).append(this.formElement);
    };
}

Добавленные элементы, похоже, не связаны с событиями click, select и т. д.. Я читал, ты можешь .on(). Я хотел бы связать все возможные события со всеми типами элементов в общем виде. Каков наилучший способ сделать это?


  • Я думаю, вы хотите: $("#container_id").on("click", '.formElement input[type="text"]', function () { }); 01.05.2013

Ответы:


1

Предположим, вы хотите назначить поведение по умолчанию для события click для всех входных данных с определенным классом, скажем, «foo»:

$(document).on('click','input.foo', function(){
    /* your function here */
});

Если вы не пойдете по этому пути и попробуйте следующее:

$('input.foo').click(function(){
     /* your function here */
});

тогда поведение будет добавлено только к существующим элементам, а не к тем, которые были добавлены после выполнения скрипта.

01.05.2013
  • Спасибо за ваше решение. Я использовал ваше решение с предложенным селектором @Ian. Я все еще не вижу событие. 01.05.2013
  • Можете ли вы опубликовать код, который вы пытаетесь? На какое событие вы хотите сделать что? 01.05.2013
  • $(document).on('click','.formElement input[type=text]', function(e){ console.log(e); }); 01.05.2013
  • Можете ли вы попробовать это, чтобы увидеть, появляется ли предупреждение, когда вы нажимаете на ввод? $(document).on('click','.formElement input[type="text"]', function(e){ alert('foo'); }); 01.05.2013
  • не видит окно предупреждения. Я использую с помощью requirejs, имеет ли это какое-либо значение 01.05.2013

  • 2

    вы должны использовать для них функцию On()

    Прикрепите функцию обработчика событий для одного или нескольких событий к выбранным элементам.

    $("button").on("click", 'selector',notify);
    
    
    $("target").on("change",'selector', notify);
    
    01.05.2013

    3

    Для динамически сгенерированного элемента вам нужно делегировать события -

    $(document).on('change','.yourInputClass',function(){
       var value = $(this).val();
    });
    

    http://api.jquery.com/on/

    01.05.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..