Прикрепить обратный вызов с помощью селектора регулярных выражений - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно прикрепить обратный вызов только к тем, чей идентификатор содержит число, я пытался использовать селектор регулярных выражений для jQuery , но безуспешно.

Вот мой код:

$(document).on('change', 'select', $r_);

Я пытался:

$(document).on('change', $('select:regex(id,[0-9])');, $r_);

Я включил это в начало моего тега <script>:

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

1 Ответ

1 голос
/ 01 октября 2019

Когда вы используете делегирование, вы не переносите $() вокруг аргумента селектора. Это должно быть просто

$(document).on('change', 'select:regex(id,[0-9])', $r_);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...