Jquery ui Selectable()无法在方法

时间:2015-12-13 04:09:31

标签: javascript jquery jquery-ui

我有一个包含可选对象的表格如下:

/* 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();
            }
     });

此代码效果很好,当我在列表中选择一个项目时,它看起来像这样:enter image description here

在我的代码中的另一个地方,我会根据所选内容进行一些修改

在我的代码中的另一个地方,如果满足条件,我将使用此代码手动取消选择

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

        }
    });
}

通过时,我认为这就是:

enter image description here

即使我删除了每个类,当我点击之前未选择的元素时,即使它再次出现enter image description here

修改取决于我选择的DOESNT运行。

我必须通过单击再次取消选择它,然后重新选择它以便运行修改。

知道如何正确地取消选择该方法吗?

1 个答案:

答案 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" );