Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Javascript 使用slideUp()和slideDown()的jQuery下拉菜单_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用slideUp()和slideDown()的jQuery下拉菜单

Javascript 使用slideUp()和slideDown()的jQuery下拉菜单,javascript,jquery,html,Javascript,Jquery,Html,我创建了一个顶栏,它有一个按钮,可以在顶栏上打开下拉菜单。 该机制可以工作,但是当您多次单击按钮时,我遇到了一些问题,这会导致动画停止并保持无效状态 下面是我的代码: 按下“选择传感器”按钮几次,很快就能明白我的意思 我发现,这个“bug”似乎没有出现在jQueryV2+中。 然而,我有很多代码使用jQuery中的旧“API”,我不确定升级到新版本是否值得 我现在的问题是: 有没有办法在不升级到新版本的情况下修复该“bug”?或者有没有像jQuery1.9.x那样的jQuery2.x迁移插件?

我创建了一个顶栏,它有一个按钮,可以在顶栏上打开下拉菜单。 该机制可以工作,但是当您多次单击按钮时,我遇到了一些问题,这会导致动画停止并保持无效状态

下面是我的代码:

按下“选择传感器”按钮几次,很快就能明白我的意思

我发现,这个“bug”似乎没有出现在jQueryV2+中。 然而,我有很多代码使用jQuery中的旧“API”,我不确定升级到新版本是否值得

我现在的问题是:

有没有办法在不升级到新版本的情况下修复该“bug”?或者有没有像jQuery1.9.x那样的jQuery2.x迁移插件?

您需要的是
stop(true,true)。通过将
true
作为第一个参数
(clearQueue)
传递,队列中的其余动画将被删除,并且永远不会运行

试试这个

// which are displayed as a plot
function ToogleSensorsDropdown() {
//$("#SensorSelectContent").clearQueue(); //<-- no need to call this..if you add true..
$("#SensorSelectContent").stop(true,true);

if ($(".SensorSelectOpener").hasClass("open")) {
    $(".SensorSelectOpener").removeClass("open");
    $("#SensorSelectContent").slideUp();
    $(".SensorSelectButtonState").html("▼");
} else {
    $(".SensorSelectOpener").addClass("open");
    $("#SensorSelectContent").slideDown();
    $(".SensorSelectButtonState").html("▲");
}
}
//显示为绘图的
函数ToogleSensorsDropdown(){

//$(“#SensorSelectContent”).clearQueue();//谢谢,这看起来已经好多了。但是效果仍然不是完美的平滑。如果您将库切换到jQuery 2.x,您会看到它更加平滑。您知道在jQuery 1.9.1中是否可以实现同样的效果吗?我正在尝试实现您在第一次尝试将jQuery更改为2.x版本时看到的相同行为
// which are displayed as a plot
function ToogleSensorsDropdown() {
//$("#SensorSelectContent").clearQueue(); //<-- no need to call this..if you add true..
$("#SensorSelectContent").stop(true,true);

if ($(".SensorSelectOpener").hasClass("open")) {
    $(".SensorSelectOpener").removeClass("open");
    $("#SensorSelectContent").slideUp();
    $(".SensorSelectButtonState").html("▼");
} else {
    $(".SensorSelectOpener").addClass("open");
    $("#SensorSelectContent").slideDown();
    $(".SensorSelectButtonState").html("▲");
}
}