密钥jquery删除类

时间:2015-11-13 11:10:56

标签: javascript jquery javascript-events

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

如果您输入的是最后一个禁用的类没有从按钮中删除,但是如果您在选项中选择最后一个它将从我的问题按钮中删除该类。为什么会这样?

1 个答案:

答案 0 :(得分:3)

删除选择器中的,

$(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(events [,selector] [,data],handler)

     

events类型:字符串

     

一个或多个空格分隔的事件类型和   可选的命名空间,例如&#34; click&#34;或&#34; keydown.myPlugin&#34;。