gpt4 book ai didi

javascript - jQuery 行取消选择的不同行为,我不明白为什么

转载 作者:行者123 更新时间:2023-12-02 23:47:59 25 4
gpt4 key购买 nike

我有两种代码变体,每种变体都有所需的行为和不需要的行为...但我不明白为什么会发生这种情况,也不明白如何将它们组合起来以获得两种所需的行为。 (我尝试了 if/else 语句的不同变体,试图在一个代码中获得两种所需的行为,但到目前为止我还没有成功。

变体 1:http://jsfiddle.net/crashvector/q81m7sab/15/

正确行为:您可以选择一行,更改显示的下拉列表(下拉值写入表格),并且可以取消选择该行。 (选中-取消选中列从 1 更新为 0。)

不良行为:您可以选择一行,然后立即取消选择它。选中-取消选中列从 1 更新为 0,但是下拉列表不会将其当前值写入表格并消失。

}).on('deselect', function (e, dt, type) {
var dt_indexes = dt[0]
if (type === 'row') {
$.each( dt_indexes, function ( index ) {
var row = dataTable.row( dt_indexes[index] );

if(!Category && !Category.length) {
writeCell($(row.node()).find('select'));
};

toggleDataAndDraw(row, type, 0);
} );
}
dataTable.draw();
});
var writeCell = dropdown => {
var currentRow = dataTable.row(dropdown.closest('tr'));
var rowData = currentRow.data();
rowData.Category = dropdown.val();
$(currentRow.node()).find('td:eq(6)').html(
currentRow.data().Category
);
currentRow.draw();
};

变体 2:http://jsfiddle.net/crashvector/q81m7sab/16/

正确行为:您可以选择一行,然后立即取消选择它。选中-取消选中列从 1 更新为 0,下拉值写入表并消失。

不良行为:您可以选择一行,更改显示的下拉列表(下拉值写入表中),并且可以取消选择该行。 但是选中-取消选中列不会从 1 更新为 0。

}).on('deselect', function (e, dt, type) {
var dt_indexes = dt[0]
if (type === 'row') {
$.each( dt_indexes, function ( index ) {
var row = dataTable.row( dt_indexes[index] );

//if(!Category && !Category.length) {
writeCell($(row.node()).find('select'));
//};

toggleDataAndDraw(row, type, 0);
} );
}
dataTable.draw();
});

var writeCell = dropdown => {
var currentRow = dataTable.row(dropdown.closest('tr'));
var rowData = currentRow.data();
rowData.Category = dropdown.val();
$(currentRow.node()).find('td:eq(6)').html(
currentRow.data().Category
);
currentRow.draw();
};

最终目标一个既具有正确行为又没有不良行为的函数。

最佳答案

从你的 jsFiddle “变体 1”...只需更改条件(第 #222 行):

if(!Category && !Category.length) {

至:

if($(row.node()).find('select').length){

所以它会执行writeCell()如果<select>当用户取消选中该行时仍然存在。

关于javascript - jQuery 行取消选择的不同行为,我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55769619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com