2014-03-05 22 views
0

我有以下简单的代码逆转的slideToggle:JQuery的在WordPress的

jQuery(document).ready(function($) { 
    $('.menu ul li:has("ul")').hover(function() { 
     $('>ul', this).stop().slideToggle(); 
    }); 
}); 

我使用jQuery的发射的“无冲突”的方式,但由于某种原因,我的滑动切换按钮上悬停关闭而不是打开!我究竟做错了什么?我确定它很简单,但我看不到它。

的例子可以在这里http://ng1club.everythingcreative.co.uk

+0

顺便说一句,你不应该使用'$('> ul',this)',与上下文一起使用的直接后代选择器不再被提及。 – adeneo

+0

你的菜单是完全搞砸,填充,高度和其他东西似乎以各种方式动画?必须有其他的事情发生,主题或一些插件也会为菜单添加动画。 – adeneo

+0

这似乎在这个小[小提琴示例](http://jsfiddle.net/VYkVL/)中工作正常。我建议你看看你的菜单中的周围元素。特别是关于'display',或者可能作为@adeneo声明可能正在发生的其他动画。 – Goose

回答

0

使用mouseentermouseleave看到来代替。有时hover没有第二个功能作为悬停出来,触发两次。

$('.menu ul li:has("ul")').mouseenter(function() { 
     $('>ul', this).stop().slideDown(); 
    }).mouseleave(function() { 
     $('>ul', this).stop().slideUp(); 
    }); 
+1

这两个答案似乎完全**与OP的代码相同? – adeneo

+0

除非我做错了这些答案都没有做任何事情 –

+0

@JosephGregory可以创建一个[jsFiddle](http://jsfiddle.net/)?并显示页面的确切html结构? –

0

试试这个根据文档,你可以使用悬停,并悬停应用效果和悬停出

jQuery('.menu ul li:has("ul")').hover(
    function() { 
     jQuery('>ul', this).stop().slideDown(); 
    }, function() { 
     jQuery('>ul', this).stop().slideUp(); 
    } 
); 

.hover()

Sample Fiddle