添加' +'到最后Algolia instantsearch rangelider的最大值

时间:2016-01-26 13:01:55

标签: javascript algolia

我使用了来自instantsearch.js的Algolia rangelider,工具提示设置为false。当显示滑块的最大值(滑块右侧的值)(例如:2,000)时,我希望它显示为(例如:2,000+)(使用" +&# 34。)

我尝试使用jquery访问/重置值,如下所示:

var $sliderMax = $('#my_slider_identifier .ais-range-slider--value').last();

我已成功处理变量,但是当我尝试从自定义窗口小部件的render()函数重置最大值时(因此它会随着每组新结果的更新而更新) )相当于$sliderMax.text('2,000' + '+'),没有任何反应 - 我假设因为在我打电话后正在重写DOM ...

如果rangeSlider显示最大值(例如:2000),是否建议使用' +'最后?

修改 为了给出更多背景:虽然我的数值范围为0-10,000 +,但绝大多数数据都在0-2000范围内,因此我截断了我的数据,如果它的数据是> 2000 ,它显示为2000年。

另外,偶然而且奇怪的是,作为一个黑客,我发现如果我使用0 ms的setTimeout(是的,there are stackoverflows)我可以写入DOM并重新执行JQuery选择:< / p>

setTimeout(function(){
    $('#index_price_eur_day_i .ais-range-slider--value').last()
        .text(MAX_PRICE_SLIDER + '+');}, 0);

我很乐意找到更有效的解决方案。

1 个答案:

答案 0 :(得分:3)

我从Algolia的Tim Carry那里听说他建议我尝试使用CSS的:after伪元素来解决这个问题。

确实,我添加了这个CSS并且它总是添加一个+ - 不幸的是,即使滑块不是最大值:/

#my_slider_identifier .ais-range-slider--value:last-of-type::after { 
    content: "+";
}

所以它不是一个完美的解决方案,但它可能“足够好” - 并且它不像使用jquery那样丑陋/低效。如果有人有更好的解决方案,请发布!