jquery sortable()如何仅在正确的位置突出显示项目

时间:2017-10-20 17:35:57

标签: javascript jquery jquery-ui

我使用sortable()获取5个对象的列表。我把它们装在随机位置。 我想:

  1. 能够在用户正确拖动项目时突出显示该项目 位置。

  2. 在所有项目处于正确位置时获得反馈

  3. 到目前为止,2个工作正常,但我似乎无法在项目处于正确位置时才能突出显示项目。

    sym.$('container').html("<ul id='sortable' style = list-style-type:none; ></ul>");
    function loadLogs(){    
        if(i<4){
            i++;  // loads image from question set          
            sym.$('#sortable').append("<li id="+question[i]+"><img class = 'default' src='images/C"+ set+"L"+ question[i] +".png' style='width:217px; height:43px;'></li>");
        }
        sym.$('#sortable').sortable({
        update: function () {       
            save_new_order();   
        }
        });
    }
    
     sym.$("logButton").bind('click',function(){
        loadLogs();
    });
    
       function save_new_order() {
            var order =  sym.$('#sortable').sortable('toArray');
    
            if(order[0] == 1 && order[1] == 2 && order[2] == 3 && order[3] == 4 && order[4] == 5 ){
                sym.$('#sortable').sortable( "disable" );               
                // feedback code here
            }
            sym.$('#sortable').sortable({   // the highlight is not working correctly
                stop: function(event,ui){
                    ui.item.css({'border': '2px solid red'});
                 }
            })
        }
    

1 个答案:

答案 0 :(得分:0)

行。我终于找到了自己的解决方案。

function save_new_order() {
    var order =  sym.$('#sortable').sortable('toArray');        
    if(order[0] == 1 && order[1] == 2 && order[2] == 3 && order[3] == 4 && order[4] == 5 ){
        sym.$('#sortable').sortable( "disable" );                   
        // feedback code here

    }
    sym.$('#sortable').sortable({
        stop: function(event, ui){
            if(ui.item.attr('id') == 1 && order[0] == 1){
            ui.item.css({'background-color':'lime', 'border-radius': 10});
        } else if(ui.item.attr('id') == 2 && order[1] == 2){
            ui.item.css({'background-color':'lime', 'border-radius': 10});
        } else if(ui.item.attr('id') == 3 && order[2] == 3){
            ui.item.css({'background-color':'lime', 'border-radius': 10});
        } else if(ui.item.attr('id') == 4 && order[3] == 4){
            ui.item.css({'background-color':'lime', 'border-radius': 10});
        } else if(ui.item.attr('id') == 5 && order[4] == 5){
            ui.item.css({'background-color':'lime', 'border-radius': 10});
        } else{
            ui.item.css({'background-color':'rgba(7,255,0,0.00)', 'border-radius': 10});
        }
    }
    });

}