jQuery-如何在拖放DIV行移动时禁用按钮

时间:2019-02-13 10:24:52

标签: javascript jquery

不确定要如何应对以下情况和所需的帮助。

我有一个form,该行具有可拖放的行,并且运行良好。我的问题是,我想在行不匹配page load时禁用某些按钮,而在行不匹配时重新启用。

到目前为止,我拥有下面的JQuery代码:

var $form = $('form'),
origForm = $form.serialize();

// Drag & drop for existing rules
    $(function () {
        $("#sortableRows").sortable();
        $("#sortableRows").disableSelection();
    });

    // Check to see if form defaults have changed
$('form :input').change(function () {
    if ($form.serialize() !== origForm) {
        addDisable();
    } else {
        removeDisable();
    }
});

// Added the disabled attribute when form changes
var addDisable = function () {
    $("button[name='addButton'], button[name='modifyButton'], button[name='deleteButton'], button[name='activeButton'], button[name='inactiveButton'], input[name='searchDialPlanBox']").attr('disabled', true);
}

// Removes the disabled attribute
var removeDisable = function () {
    $("button[name='addButton'], button[name='modifyButton'], button[name='deleteButton'], button[name='activeButton'], button[name='inactiveButton'], input[name='searchDialPlanBox']").removeAttr('disabled');
}

正如我所说的那样,拖放和禁用/启用功能在其他所有方面都工作正常,例如我disable更改了input时列出的按钮,但是不确定div row移动时如何执行此操作。

它的一部分正常工作,但在移动其他DIV时卡住了,因为第一块可以正常工作,但其他总是落入Else

https://anaconda.org/conda-forge/py-xgboost

2 个答案:

答案 0 :(得分:1)

对于callback function,您也可以像下面这样给sortable

$( ".selector" ).sortable({
    change: function( event, ui ) {}
});

答案 1 :(得分:0)

负责拖放处理的代码在哪里?
现在,我认为这是由.sortable()完成的。然后,您必须查看此函数的文档,并搜索在拖放时触发的事件,并附加一个侦听器,然后该侦听器将调用禁用/启用按钮。

类似的东西:

/*...*/.sortable({
  dragStart: addDisable,
  dragEnd: removeDisable
})

如果要根据特定条件启用/禁用,那么当然也必须在事件处理程序中实现。