向上键 jquery 删除 class

key up jquery removing class

Demo

我这里有一个验证 class 是否存在于 div 中的演示。 当没有 class 时,另一个 class 将从按钮中删除。 基本上,当没有禁用按钮时,添加按钮上的禁用将被删除。

如果用户做的最后一件事是更改,这可以正常工作,但如果他做的最后一件事是键入,则它不起作用

这里有什么问题?

js

function toggleDisabled(target) {
    var $target = $(target);
    $target.toggleClass('disabled', !$target.val());
}
var $notnull = $('.notnull');

$(document).on('keyup, change', '.notnull', function (e) {
    toggleDisabled(e.currentTarget);
});
$notnull.each(function (i, el) {
    toggleDisabled(el);
});

function toggleDisabledNavButton(target) {
    var $target = $(target);
    var basic = $target.find('input,select').hasClass('disabled');
    console.log(basic);
    //console.log($target);
    if (basic) {
        $("#add").addClass('disabled');
    } else {
        $("#add").removeClass('disabled');
    }
}
var detailscontainer = $('.notnull');

$(document).on('keyup, change, click', 'input:button,input.notnull,select.notnull', function (e) {
    e.preventDefault();

    toggleDisabledNavButton($(e.currentTarget).closest('.detailscontainer'));
});

detailscontainer.each(function (i, el) {
    toggleDisabledNavButton(el.closest('.detailscontainer'));
});

如果你最后输入 class disabled 不会从按钮中删除但是如果你在最后一个选项中选择它会从按钮中删除 class 这是我的问题.这是为什么

删除选择器中的 ,

$(document).on('keyup change', '.notnull', function (e) {

Fiddle

if you type last the class disabled is still not removed from button but if you make selecting in option the last it will remove the class from button that is my question. why is that

又因为,:-

$(document).on('keyup change click', 'input:button,input.notnull,select.notnull', function (e) {

Fiddle

为什么

作为 jQuery documentation:-

.on( events [, selector ] [, data ], handler )

events Type: String

One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".