Сортировка «ИЛИ» вместо «И» в библиотеке JPList - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь использовать JPList для сортировки по нескольким элементам.В настоящее время JPList выполняет поиск по типу 'AND' (например, сортировка по элементу, содержащему теги, html, php AND jQuery), но я хотел бы отфильтровать все элементы, содержащие эти теги (например, отсортировать по всем элементам, содержащим html, phpИЛИ JQuery).Есть ли возможность включить это?

Или кто-то знает способ добиться этого без JPlist?

Ниже приведен код (примечание: это код по умолчанию из JPlist. Вы можете просмотретьэто здесь: https://www.jplist.org/documentation/controls/checkbox-path-filter):

<h1><a href="https://jplist.org/documentation/controls/checkbox-path-filter">jPList Checkbox Path Filter Control</a></h1>

<div class="box">

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".title"
            data-group="data-group-1"
            name="name1"
            checked />
        Filter by Title
    </label>

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".views"
            data-group="data-group-1"
            name="name2" />
         Filter by Views
    </label>

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".likes"
            data-group="data-group-1"
            name="name3" />
        Filter by Likes
    </label>

</div>

<!-- content to filter -->
<div data-jplist-group="data-group-1">

    <!-- item -->
    <div data-jplist-item>
        <div class="views likes">Views value + Likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="views title">Views value + title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title likes">Title value  + likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="likes">Likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="likes">Likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="title">Title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="views title">Views value + title value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="likes">Likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="views">Views value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="likes">Likes value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="views">Views value</div>
    </div>

    <!-- item -->
    <div data-jplist-item>
        <div class="views likes">Views value + likes value</div>
    </div>
</div>

<style>
html, body{
    background: #efefef;  
    box-sizing: border-box;
    padding: 10px;
}

h1{
    text-align: center;
    margin: 0 0 10px 0;
    padding: 0;
    font-size: 22px;
    color: #212529;
}

a{
    color: #212529;
}

a:hover{
  text-decoration: none;
}


[data-jplist-group]{
    display: flex;
    font-size: 16px;
    flex-wrap: nowrap;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

[data-jplist-item]{
  border-bottom: 1px dotted #ccc;
  width: 100%;
  text-align: center;
  padding: 10px 0;
  box-sizing: border-box;
}

.box{
  display: flex;
  justify-content: center;
  margin: 20px 0;
}

label{
    display: inline-block;
    margin: 0 10px;
}
</style>

<script>
jplist.init();
</script>

Вот рабочая демонстрация codepen из JPlist: https://codepen.io/1rosehip/pen/RyYrJG

1 Ответ

0 голосов
/ 07 мая 2019

Добавление атрибута data-or="example" во все группы группы флажков.

Например:

<div class="box">

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".title"
            data-group="data-group-1"
            name="name1"
            data-or="example" 
            checked />
        Filter by Title
    </label>

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".views"
            data-group="data-group-1"
            name="name2" 
            data-or="example"/>
         Filter by Views
    </label>

    <!-- checkbox path filter control -->
    <label>
        <input
            type="checkbox"
            data-jplist-control="checkbox-path-filter"
            data-path=".likes"
            data-group="data-group-1"
            name="name3"
            data-or="example"/>
        Filter by Likes
    </label>

</div>

У меня работает!

...