javascript - jQuery 星级 slider 过滤器

标签 javascript jquery html jquery-ui-slider

我试图在 jquery 中制作一个星级评级 slider 文件管理器,但什么也没发生。

过滤器是:

<div class="panel-collapse collapse filters-container" id="rating-filter">
    <div class="panel-content">
        <div class="five-stars-container editable-rating" data-label-fullrating="5 STELE" data-label-norating="Fara" data-label-rating="STELE" data-rating="1" id="rating"></div><span>TOATE</span>
    </div>
</div>

要过滤的 Div 是:

<div data-stars="2">2 STARS</div>
<div data-stars="2">2 STARS</div>
<div data-stars="4">5 STARS</div>
<div data-stars="3">3 STARS</div>
<div data-stars="1">1 STARS</div>

我的非工作 jQuery 代码是:

tjq("#rating").slider({
    range: "min",
    value: 4,
    min: 0,
    step: 1,
    max: 5,
    slide: function(event, ui) {
        var label_rating = '';
        if (ui.value == 0) {
            label_rating = tjq("#rating").data('label-norating');
        } else if (ui.value == 5) {
            label_rating = tjq("#rating").data('label-fullrating');
        } else {
            label_rating = ui.value + ' ' + tjq("#rating").data('label-rating');
        }
        tjq("#rating-filter .panel-content > span").text(label_rating);
        $('div[data-stars]').each(function() {
            var dStars = $(this).attr('data-stars');
            if (dStars < ui.values[0] || dStars > ui.values[1]) $(this).hide();
            else $(this).show();
        });
    }
});

如果您能帮我解决这个问题,请先致谢。

最佳答案

尝试改变

if (dStars < ui.values[0] || dStars > ui.values[1])

if (dStars != ui.value) 

DEMO

$("#rating").slider({
    range: "min",
    value: 4,
    min: 0,
    step: 1,
    max: 5,

    slide: function(event, ui) {
        var label_rating = '';
        if (ui.value == 0) {
            label_rating = $("#rating").data('label-norating');
        } else if (ui.value == 5) {
            label_rating = $("#rating").data('label-fullrating');
        } else {
            label_rating = ui.value + ' ' + $("#rating").data('label-rating');
        }
        $("#rating-filter .panel-content > span").text(label_rating);
        $('div[data-stars]').each(function() {
            var dStars = $(this).attr('data-stars');

            if (dStars != ui.value) 
               $(this).hide();
            else 
               $(this).show();
        });
    }
});

关于javascript - jQuery 星级 slider 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523659/

相关文章:

php - jQuery 不在选择上加载数据

javascript - 关闭灯箱后模态窗口覆盖仍然存在

javascript - Bit.ly API 不接受 "window.location",并记录非法调用错误

javascript - Magento2 图库加载后回调

jquery - jsonp作为GET发送

javascript - 如何打开不同域或子域到新选项卡以及相同域链接到同一选项卡

android - android问题中的HTML5 Canvas

javascript - 如何从文本区域获取换行符

javascript - 更改 javascript 中输入的匹配文本的文本颜色

Javascript .dropdown-toggle() Bootstrap 函数在单击后未关闭