我使用了来自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);
我很乐意找到更有效的解决方案。
答案 0 :(得分:3)
我从Algolia的Tim Carry那里听说他建议我尝试使用CSS的:after
伪元素来解决这个问题。
确实,我添加了这个CSS并且它总是添加一个+ - 不幸的是,即使滑块不是最大值:/
#my_slider_identifier .ais-range-slider--value:last-of-type::after {
content: "+";
}
所以它不是一个完美的解决方案,但它可能“足够好” - 并且它不像使用jquery那样丑陋/低效。如果有人有更好的解决方案,请发布!