我有一个包含可选对象的表格如下:
/* ESPACE OU LES TATOUAGES SONT SELECTABLE */
$(".tatooInk > tbody").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable();
$( ".tatooInk > tbody" ).selectable({
filter: ":not(td, img ,b,span,div)",
/* Quand on select un tatoo */
selected: function( e, ui ) {
if(tatoos.length < 28){
// JSON.stringify(ui.selected);
console.log($( ui.selected ).html());
$( ui.selected ).addClass( "ui-state-highlight" );
getAllTats( $(ui.selected) );
updateCode();
}
else{
alert('trop de tatouages');
$(ui.selecting).removeClass("ui-selecting");
}
},
unselected: function( e, ui ) {
$( ui.unselected ).removeClass( "ui-state-highlight" );
removeTat( $(ui.unselected) );
updateCode();
}
});
此代码效果很好,当我在列表中选择一个项目时,它看起来像这样:
在我的代码中的另一个地方,我会根据所选内容进行一些修改
在我的代码中的另一个地方,如果满足条件,我将使用此代码手动取消选择
function TabletatooDel(url){
$('.tatooInk tr').each(function(){
var lien = $(this).children(':nth-child(1)').children().attr('src');
if(lien == url){
$(this).removeClass('ui-selected ui-state-highlight');
$(this).trigger('unselecting');
$(this).trigger('unselected');
}
});
}
通过时,我认为这就是:
即使我删除了每个类,当我点击之前未选择的元素时,即使它再次出现
修改取决于我选择的DOESNT运行。
我必须通过单击再次取消选择它,然后重新选择它以便运行修改。
知道如何正确地取消选择该方法吗?
答案 0 :(得分:0)
......没关系!我发现了我的问题。我忘了从包含它们的json列表中删除纹身。
现在看起来像这样:
for(var i=0; i< tatoos.length; i++){
if(tatoos[i].url === url ){
tatoos.splice(i, 1);
}
}
$(this).removeClass('ui-state-highlight');
$(this).removeClass('ui-selected');
$(this).children(':nth-child(4)').removeClass( "tatooSelect" );