发现了问题。
Scriptaculous Slider 和 Multimap 都在定义Array.prototype.indexOf
,但方式不同。
解决方案(因为我只想要滑块上的 1 个句柄)是编辑slider.js
并将调用更改为this.handles.indexOf
.
Index: slider.js
===================================================================
--- slider.js (revision 1)
+++ slider.js (working copy)
@@ -219,14 +219,14 @@
this.offsetY = (pointer[1] - offsets[1]);
} else {
// find the handle (prevents issues with Safari)
- while((this.handles.indexOf(handle) == -1) && handle.parentNode)
+ while((this.handles[0] != handle) && handle.parentNode)
handle = handle.parentNode;
-
- if (this.handles.indexOf(handle)!=-1) {
+
+ if (this.handles[0] == handle) {
this.activeHandle = handle;
- this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
+ this.activeHandleIdx = 0;
this.updateStyles();
-
+
var offsets = Position.cumulativeOffset(this.activeHandle);
this.offsetX = (pointer[0] - offsets[0]);
this.offsetY = (pointer[1] - offsets[1]);
使用此修复程序的任何人请注意:虽然此修复程序将使 Scriptaculous Slider 和 Multimaps 可以在同一页面上一起工作,但它将使滑块上只有 1 个句柄有效。如果您尝试将其与 2 个或更多手柄一起使用,我还没有测试过会发生什么。