【发布时间】:2018-02-10 19:46:49
【问题描述】:
我正在尝试在我的流星应用程序中创建一个介于 0 和 1 之间的滑块,步长为 0.001,我不希望滑块具有默认值,并且我不想在用户决定之前显示滑块的句柄在一个值上。我是 Meteor 和 Web 开发的新手,所以我复制了一些代码,并一直在编辑它以适应我的上下文。
我的 JS 文件是这样的
Template.game_task.onCreated(()=>{
if (!Session.get("sliderValue")){
Session.setPersistent('sliderValue', -1)
}
});
Template.game_task.onRendered(()=> {
/////// the slider stuff //////
$("#slider").slider({
min: 0,
max: 1,
step: 0.01,
slide: function(event, ui) {
$('#slider > .ui-slider-handle').show();
Session.setPersistent('sliderValue',ui.value)
},
change: function(event, ui) {
//save value to collection
}
});
$('#slider > .ui-slider-handle').hide();
});
然后是我的 HTML 文件
<template name="game_task">
<div id="slider"></div>
<span id="min">0</span>
<span class="quarter">0.25</span>
<span class="quarter">0.5</span>
<span class="quarter">0.75</span>
<span id="max">1</span>
<input name="guess" id="guess" value="-1" hidden />
</template>
但是,我收到以下错误:
Exception from Tracker afterFlush function:
meteor.js?hash=6d285d84547b3dad9717a7c89c664b61b45ea3d8:942 TypeError: $(...).slider is not a function
at Blaze.TemplateInstance.
我好像没有.slider(..) 功能?虽然我的流星包中有 JQuery(默认情况下)。
【问题讨论】:
-
slider 是 jquery-ui 的一部分,默认情况下未与 Meteor 打包 afaik。你可以试试atmospherejs.com/mizzao/jquery-ui
-
@MichelFloyd 谢谢!这行得通!但是这个滑块在下限处表现得很奇怪。当我到达 0 时,我下降到 0.01,然后我得到的值为空。所以我永远无法选择 0 .. 这不会发生在高端。
-
为什么不为此发布一个不同的问题。
标签: javascript jquery meteor meteor-blaze