鼠标拖动的怪异行为,javascript
Weird behaviour on mousedrag, javascript
所以我使用knob.js创建两个表盘,一个在另一个里面。外部表盘表示一本书的累积评级,即所有评级的平均值。这个外部表盘有data-readOnly="true"
,它的值在这些表盘的共同中心可见。内部表盘是我(用户)提交他对那本书的评价。因此,内部拨号值可以由我(用户)更改。
<div class="demo_sub_outer">
<input class="knob" data-thickness=".1" data-width="150" data-height="150" data-angleOffset=0 data-displayInput="true" data-angleArc=360 data-fgColor="#209652" data-bgColor="#eee" data-inputColor="" data-readOnly="true" value="{{ u_list.cum_attr_ratings.sexy }}">
</div>
<div class="demo_sub" id="demo_sub_1">
<input class="knob" id="sexy" data-thickness="0.5" data-width="130" data-height="130" data-angleOffset=0 data-displayInput="false" data-angleArc=360 data-fgColor="#b8dcc7" data-bgColor="#e5e5e5" value="{{ u_list.attr_ratings.sexy }}" Title="Cumulative wealthiness" >
</div>
我想让它工作的方式是,当我改变内部表盘值(即当我评价一本书,或改变我对一本书的评价)外部表盘值(累积评价)应该相应地更新。
我是这样做的……jsFiddle
现在如果我通过单击表盘上的某个地方改变内部表盘值,则可以正常工作,但如果我通过拖动鼠标改变此值…结果出乎意料。这种奇怪的行为可能是什么原因呢?
EDIT:在jsFiddle的演示中,我假设另外3个用户给这本书打了80/100的分数…
据我所知,您的问题与您对两个旋钮使用相同的更改回调这一事实有关。
$(function($) {
var prev_ratings = [80, 80, 80]
$('.outer-knob').knob();
$(".inner-knob").knob({
var new_ratings = prev_ratings;
new_ratings.push(+$('.inner-knob').val());
var sum = new_ratings.reduce(function(acc, v) { return acc + v }, 0)
$('.outer-knob').val(sum / new_ratings.length);
// code with some output is available on jsfiddle below
},
});
});
我用以下几点更新了你的小提琴:
- 旋钮的不同初始化
- 先前的评级现在在一个数组中,以方便测试
- 简化新评级的计算
我在数组上使用reduce
方法来进行实际的评级计算,如果您不熟悉它,您可以在mdn上找到一些文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
您仍然需要弄清楚如何将新的评级发送到您的后端。
相关文章:
- 使Javascript切换可拖动
- html/javascript中的可拖动文本
- Javascript拖动对象
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- javascript可拖动滑块,可在mouseUp上捕捉回中间位置
- 在拖动过程中释放鼠标时忽略 JavaScript mouseUp 事件
- JavaScript-拖动图像-最多3个
- 如何在谷歌地图javascript中在地图上拖动标记(可拖动方向)时显示更新的坐标
- Javascript:创建可拖动的元素,这些元素互相推开
- 在父对象上拖动时移动子对象的Javascript
- Javascript-如何清除最后绘制的矩形,以便在'拖动'以创建矩形
- 如何在JSP页面中使用JavaScript捕获鼠标拖动坐标
- javascript中的图像拖动
- Javascript 拖动事件不起作用
- 为什么使用 JavaScript 拖动图像在 Firefox 中不起作用
- 如何使用JavaScript拖动和移动图像
- 为什么我的javascript拖动调整大小框没有'没有按预期工作
- 将Javascript拖动事件与滚动事件配对
- Jquery或javascript:拖动图像到某个位置以改变页面
- 简单的纯Javascript拖动控制器滑块