Javascript 将鼠标悬停在滑块向下滑动,使其工作,但单击“不工作”

Javascript 将鼠标悬停在滑块向下滑动,使其工作,但单击“不工作”,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我使用的是Bootstrap3,我有一个下拉菜单。我没有使用默认动画,而是使用JQueryslideDown和slideUp。我遇到的唯一问题是,当我将鼠标悬停时,它可以正常工作,但当我单击菜单时,它会正确显示并且slidesDown工作,第二次单击然后slideUP工作,然后在第三次单击以检查是否会再次工作时,没有响应。我见过很多例子和不同的方法,但我是个新手,运气不好 有效的相关代码: $(document).ready(function () { $('.navbar-default

我使用的是Bootstrap3,我有一个下拉菜单。我没有使用默认动画,而是使用JQuery
slideDown
slideUp
。我遇到的唯一问题是,当我将鼠标悬停时,它可以正常工作,但当我单击菜单时,它会正确显示并且
slidesDown
工作,第二次单击然后
slideUP
工作,然后在第三次单击以检查是否会再次工作时,没有响应。我见过很多例子和不同的方法,但我是个新手,运气不好

有效的相关代码:

$(document).ready(function () {
   $('.navbar-default .navbar-nav > li.dropdown').hover(function () {
      $('ul.dropdown-menu', this).stop(true, true).slideDown('fast');
      $(this).addClass('open');
   }, function () {
      $('ul.dropdown-menu', this).stop(true, true).slideUp(100);
      $(this).removeClass('open');
   }); 
});
不起作用的相关代码:

$(document).ready(function () {
   $('.navbar-default .navbar-nav > li.dropdown').click(function () {
      $('ul.dropdown-menu', this).stop(true, true).slideDown('fast');
      $(this).addClass('open');
   }, function () {
      $('ul.dropdown-menu', this).stop(true, true).slideUp(100);
      $(this).removeClass('open');
   }); 
});
最后,我想添加
$('#target')。在('click hover',function(){
)上,如果用户将鼠标悬停在菜单上并意外单击,它将关闭菜单,他们可以通过再次将鼠标悬停在菜单上或单击打开来重新打开菜单

我不确定单击时如何删除悬停函数。

该方法仅使用一个参数作为参数。您可以使用和

该方法只接受一个参数作为其参数。您可以使用和


Hover将两个函数作为参数:()

单击仅取一个。()

您需要执行以下操作:

$(document).ready(function () {
   $('.navbar-default .navbar-nav > li.dropdown').click(function () {
      if ($(this).hasClass('open')) {
         $('ul.dropdown-menu', this).stop(true, true).slideUp(100);
         $(this).removeClass('open');
      } else {
         $('ul.dropdown-menu', this).stop(true, true).slideDown('fast');
         $(this).addClass('open');
      }
   }); 
});

Hover将两个函数作为参数:()

单击仅取一个。()

您需要执行以下操作:

$(document).ready(function () {
   $('.navbar-default .navbar-nav > li.dropdown').click(function () {
      if ($(this).hasClass('open')) {
         $('ul.dropdown-menu', this).stop(true, true).slideUp(100);
         $(this).removeClass('open');
      } else {
         $('ul.dropdown-menu', this).stop(true, true).slideDown('fast');
         $(this).addClass('open');
      }
   }); 
});

单击仅获取一个参数…单击仅获取一个参数…不起作用。这可能值得注意,我同时具有悬停和单击功能。
滑动切换
起作用,但添加了
。hasClass
没有任何作用。不过,感谢您的参考资料,很高兴知道
悬停
功能中有什么可以使用的吗你会搞乱它吗?因为上面的代码经过测试,在这里工作:奇怪。你的解决方案在这里工作,当我添加额外的位和块时,但它在我的网站上不工作。可能有什么东西搞乱了。但是感谢你的解决方案,它将保存到未来的项目中。IDN不工作。这可能值得注意,我有悬停和单击功能同时打开。
slideToggle
有效,但添加
.hasClass
无效。不过感谢您的参考,很高兴知道
悬停
函数中是否有什么东西可能会弄乱它?因为上面的代码已经过测试,在这里工作:奇怪。当我添加额外的位和pi时,您的解决方案在这里工作eces在,但在我的网站上不起作用。也许有什么东西弄乱了。但感谢您的解决方案,它将为未来的项目保存
$(document).ready(function () {
   $('.navbar-default .navbar-nav > li.dropdown').click(function () {
      if ($(this).hasClass('open')) {
         $('ul.dropdown-menu', this).stop(true, true).slideUp(100);
         $(this).removeClass('open');
      } else {
         $('ul.dropdown-menu', this).stop(true, true).slideDown('fast');
         $(this).addClass('open');
      }
   }); 
});