使用上述 Ryan 的修复,我设法让我的滑块按预期工作。然而,正如评论中提到的,它也确实打破了我的 Firefox。为了修复 Firefox 问题,在 angular-slider.js 中还需要进行以下更改:
第 79 行:
改变:
sliderDirective = function($timeout) {
通过添加$window
参数:
sliderDirective = function($timeout, $window) {
第 227 行:
改变:
onMove = function () {
var eventX, newOffset, newPercent, newValue;
eventX = event.clientX || event.touches[0].clientX;
...
通过向函数添加customEvent
参数onMove()
并分配您自己的event
变量 ( myEvent
):
onMove = function(customEvent) {
var eventX, newOffset, newPercent, newValue,
myEvent = $window.event || customEvent;
eventX = myEvent.clientX || myEvent.touches[0].clientX;
...
这样,该函数将使用本机window.event
变量(存在于 Firefox 中)或库提供的变量。
第 317 行:
最后,通过更改更新依赖声明:
qualifiedDirectiveDefinition = ['$timeout', sliderDirective];
包括$window
qualifiedDirectiveDefinition = ['$timeout', '$window', sliderDirective];