Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择ToIsLider:右滑块重叠问题_Jquery_Jquery Ui_Jquery Plugins_Jquery Selectors - Fatal编程技术网

Jquery 选择ToIsLider:右滑块重叠问题

Jquery 选择ToIsLider:右滑块重叠问题,jquery,jquery-ui,jquery-plugins,jquery-selectors,Jquery,Jquery Ui,Jquery Plugins,Jquery Selectors,如果你去这里: 然后单击第二个滑块并将其拖动到第一个滑块的顶部,松开,然后尝试将第二个手柄滑回右侧,它不会让您松开。它只能向左走。我知道这是jQueryUISlider库的一个问题,但我想知道是否有人使用selectToUISlider找到了解决这个问题的好方法 我根本不需要移动第一个控制柄,它是一个固定值(我只是在第一个控制柄上显示:无) 任何帮助都将不胜感激 -Rob我快速查看了源代码,您可能可以根据自己的需要修改jQuery UI滑块代码。如果您下载jQuery UI 1.8.12,请查看

如果你去这里:

然后单击第二个滑块并将其拖动到第一个滑块的顶部,松开,然后尝试将第二个手柄滑回右侧,它不会让您松开。它只能向左走。我知道这是jQueryUISlider库的一个问题,但我想知道是否有人使用selectToUISlider找到了解决这个问题的好方法

我根本不需要移动第一个控制柄,它是一个固定值(我只是在第一个控制柄上显示:无)

任何帮助都将不胜感激


-Rob

我快速查看了源代码,您可能可以根据自己的需要修改jQuery UI滑块代码。如果您下载jQuery UI 1.8.12,请查看
/development bundle/UI/jQuery.UI.slider.js
中的第281行:

// workaround for bug #3736 (if both handles of a range are at 0,
// the first is always used as the one with least distance,
// and moving it is obviously prevented by preventing negative ranges)
if( o.range === true && this.values(1) === o.min ) {
   index += 1;
   closestHandle = $( this.handles[index] );
}
错误修复是一个很好的提示,提示更改应该在哪里进行,请将您的条件更改为以下内容:

if( o.range === true && index == 0 ) {
这可以确保如果是范围滑块,无论您做什么,都会拖动第二个滑块。您可以通过下载自定义jQuery UI缩小版(不带滑块组件)来使用您的代码,然后手动包含被黑客攻击的版本,或者您也可以对缩小版代码进行黑客攻击

寻找:

if(a.range===true&&this.values(1)===a.min)
改为:

if(a.range===true&&g==0)
如果您不想丢失原来的滑块(这样您就可以在页面的其他地方使用它),只需将这个被黑客攻击的扩展重命名为其他扩展,并单独包含它


修复重叠的bug并向滑块组件添加一个选项以修复其中一个句柄会很好,但我恐怕这超出了这个答案的范围。:)

我快速查看了源代码,您可能可以根据自己的需要修改jQuery UI滑块代码。如果您下载jQuery UI 1.8.12,请查看
/development bundle/UI/jQuery.UI.slider.js
中的第281行:

// workaround for bug #3736 (if both handles of a range are at 0,
// the first is always used as the one with least distance,
// and moving it is obviously prevented by preventing negative ranges)
if( o.range === true && this.values(1) === o.min ) {
   index += 1;
   closestHandle = $( this.handles[index] );
}
错误修复是一个很好的提示,提示更改应该在哪里进行,请将您的条件更改为以下内容:

if( o.range === true && index == 0 ) {
这可以确保如果是范围滑块,无论您做什么,都会拖动第二个滑块。您可以通过下载自定义jQuery UI缩小版(不带滑块组件)来使用您的代码,然后手动包含被黑客攻击的版本,或者您也可以对缩小版代码进行黑客攻击

寻找:

if(a.range===true&&this.values(1)===a.min)
改为:

if(a.range===true&&g==0)
如果您不想丢失原来的滑块(这样您就可以在页面的其他地方使用它),只需将这个被黑客攻击的扩展重命名为其他扩展,并单独包含它


修复重叠的bug并向滑块组件添加一个选项以修复其中一个句柄会很好,但我恐怕这超出了这个答案的范围。:)

遵循DarthJDG的示例,我查看了源代码并用另一种方式修复了一个bug。因此,向右移动时,右滑块将具有优先权,向左移动时,左滑块将具有优先权


jquery.ui.slider.js的这一部分

        var thisDistance = Math.abs( normValue - self.values(i) );
替换为:

        var thisDistance = Math.abs( normValue - (self.values(i) + i) );
var l=Math.abs(c-(j.values(k)+k));
删除

    if( o.range === true && this.values(1) === o.min ) {
        index += 1;
        closestHandle = $( this.handles[index] );
    }
或在小型版本中,本部分:

var l=Math.abs(c-j.values(k));
替换为:

        var thisDistance = Math.abs( normValue - (self.values(i) + i) );
var l=Math.abs(c-(j.values(k)+k));
并删除以下内容:

if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}
变量名称在您的缩小jquery库版本中可能不同,但可以使用以下文件中的搜索查询找到定位点:

.range===true&&this.

希望这能有所帮助。

以DarthJDG为例,我查看了源代码,并用另一种方式修复了一个bug。因此,向右移动时,右滑块将具有优先权,向左移动时,左滑块将具有优先权


jquery.ui.slider.js的这一部分

        var thisDistance = Math.abs( normValue - self.values(i) );
替换为:

        var thisDistance = Math.abs( normValue - (self.values(i) + i) );
var l=Math.abs(c-(j.values(k)+k));
删除

    if( o.range === true && this.values(1) === o.min ) {
        index += 1;
        closestHandle = $( this.handles[index] );
    }
或在小型版本中,本部分:

var l=Math.abs(c-j.values(k));
替换为:

        var thisDistance = Math.abs( normValue - (self.values(i) + i) );
var l=Math.abs(c-(j.values(k)+k));
并删除以下内容:

if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}
变量名称在您的缩小jquery库版本中可能不同,但可以使用以下文件中的搜索查询找到定位点:

.range===true&&this.

希望这能有所帮助。

这个脚本的作者使用jQuery ui slider v1.7.1对它进行了修改,我确实发现了:if(e.range==true&&this.values(1)==e.min)并用您建议的mod替换了它,但它没有做任何更改?该版本已经进行了不同的缩小,导致了不同的变量名,请尝试将其更改为
if(e.range==true&&I==0)
成功了!!你就是男人(或女人)!!非常感谢你!!至少在我最后一次检查时,那将是一个男人。:)不客气。这只是一个黑客程序,并不完美。这个脚本的作者使用jQuery ui slider v1.7.1对它进行了修改,我发现了:if(e.range==true&&this.values(1)==e.min)并将其替换为您建议的mod,但它没有做任何更改?该版本已经以不同的方式缩小,导致了不同的变量名,请尝试将其更改为
if(e.range==true&&i==0)
成功了!!你就是那个男人(或女人)!!非常感谢!!那就是男人,至少上次我检查时是这样。:)不客气。不过,这只是一个技巧,并不完美。