jQuery 鼠标悬停和切换问题
我试图在鼠标悬停时显示一个链接,然后单击该链接,让该链接切换一个 div(显示/隐藏)。我现在拥有的如下。
PHP:
<li class="test"> <div class="link" style="display:none">
<span class="toggle"><a href="#">link</a></span>
</div>
<div class="togglediv"><p>lorem ipsum</p></div>
</li>
JQUERY:
<script language="javascript">
jQuery(document).ready(function($){
$('.test').bind('mouseenter mouseleave', function(e){
var fade_type = e.type == 'mouseenter' ? 'fadeIn' : 'fadeOut';
$(this).find('.link')[fade_type]();
}).find('.toggle a').click(function($){
$(".togglediv").hide();
$(this).toggleClass("active").next().slideToggle("slow");
return false;
});
});
</script>
鼠标悬停有效,但切换无效。当我点击链接时,什么也没有发生。什么给?
I am trying to have a link appear on mouseover and when clicked, have the link toggle a div (show/hide). What I have now is below.
PHP:
<li class="test"> <div class="link" style="display:none">
<span class="toggle"><a href="#">link</a></span>
</div>
<div class="togglediv"><p>lorem ipsum</p></div>
</li>
JQUERY:
<script language="javascript">
jQuery(document).ready(function($){
$('.test').bind('mouseenter mouseleave', function(e){
var fade_type = e.type == 'mouseenter' ? 'fadeIn' : 'fadeOut';
$(this).find('.link')[fade_type]();
}).find('.toggle a').click(function($){
$(".togglediv").hide();
$(this).toggleClass("active").next().slideToggle("slow");
return false;
});
});
</script>
The mouseover works, but the toggle doesen't. When I click the link, nothing happens. What gives?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
此处演示
http://jsfiddle.net/JE8Bz/
1)正如TJ Crowder提到的问题
2)你把
click()
函数参数中的 $demo here
http://jsfiddle.net/JE8Bz/
1) as the problem T.J. Crowder mentioned
2) you put a $ in the param of
click()
function您的链接没有下一个同级(它是
span
中唯一的内容,也是div
中唯一的内容),因此调用next
它将返回一个空集。也许使用closest
转到包含的 div,然后接下来要回顾一下:
Your link has no next sibling (it's the only thing inside the
span
, which is the only thing in thediv
), so callingnext
on it will return an empty set. Perhaps useclosest
to go up to the containing div, thennext
to go over:这是一个例子:
http://jsfiddle.net/mazzzzz/MeAnJ/9/
更新小提琴
Here is an example:
http://jsfiddle.net/mazzzzz/MeAnJ/9/
Update the Fiddle