Demo

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

如果用户要做的最后一件事是更改,则此方法很好,但是如果用户所做的最后一件事是向上键,则此方法不起作用

这是怎么了

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'));
});


如果您键入最后一个类,则不会从按钮中删除禁用的类,但是如果您在选项中进行选择,则最后一个它将从按钮中删除类,这是我的问题。这是为什么

最佳答案

删除选择器中的,

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


Fiddle


  如果您键入最后一个,则禁用类仍不会从按钮中删除
  但是如果您在最后一个选项中进行选择,它将删除该类
  从按钮,这是我的问题。这是为什么


再次由于,:-

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


Fiddle

为什么

作为jQuery documentation:-


  .on(事件[,选择器] [,数据],处理程序)
  
  事件类型:字符串
  
  一种或多种以空格分隔的事件类型和
  可选的名称空间,例如“ click”或“ keydown.myPlugin”。

10-07 18:53
查看更多