Сортируемый список содержит между заданными числами jquery - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь использовать сортируемый список между указанными числами в идентификаторе данных. Я использовал код для обновления идентификатора данных для препарата.но мой код обновляется с 1 до 6, я хочу, чтобы он был 11-16 или 21-26 ... поэтому я просто хочу, чтобы верхний или начальный идентификатор данных всегда начинал с идентификатора данных, но теперь он становится равным 1 всегда

jQuery('.photos').sortable({
    stop: function(event, ui){
        $(".ui-sortable li").each(function(i, el){
               $(el).attr('data-id',$(el).index()+1);
        });
    }
});
#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; cursor:move; }
#sortable li span { position: absolute; margin-left: -1.3em; }
#sortable li.fixed{cursor:default; color:#959595; opacity:0.5;}
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<ul class="photos ui-sortable">
    <li class="photo" data-id="11">pawal</li>
    <li class="photo" data-id="12">sigma</li>
    <li class="photo" data-id="13">notea</li>
    <li class="photo" data-id="14">missouri</li>
    <li class="photo" data-id="15">Ooops</li>
    <li class="photo" data-id="16">Ratee</li>
</ul>

JS FIDDLE LINK

1 Ответ

0 голосов
/ 08 ноября 2018

.each принимает переменную итератора i, она начинается с первого индекса коллекции 0 и переходит к последнему элементу коллекции, если вы хотите пользовательское значение, вы должны объявить переменную и инициализировать до x и увеличиваем его на 1 на каждой итерации цикла .each

Изменить этот код:

jQuery('.photos').sortable({
    stop: function(event, ui){
        let myIncrementor = GetLowestDataIdValue(); //Custom value returned from function
        $(".ui-sortable li").each(function(i, el){
               $(el).attr('data-id',myIncrementor);
               myIncrementor += 1; //increment it
        });
    }
});

function GetLowestDataIdValue(){
    let lowestVal = -1;
    $('.photos.ui-sortable').find('li').each(function(i, el){
         if(parseInt($(el).attr('data-id')) < lowestVal || lowestVal === -1){
               lowestVal = parseInt($(el).attr('data-id'));
         }
    });

    return lowestVal;
}

JSFIDDLE

...