不能改变的变量

我试图做一个导航区域,我试图切换标签的积极变量。 这仅仅是对于导航按钮,不过后来我想通过切换变量做出肩了。

这里是我的代码:

active = 1; function hover() { $(nav1).live('mouseenter', function() { active = 2; }); if ( active == 1) { $(tab1).fadeIn('fast'); } else if ( active != 1) { $(tab1).fadeOut('slow'); } if ( active == 2) { $(tab2).fadeIn('fast'); } else if ( active != 2) { $(tab2).fadeOut('slow'); } } hover();

--------------解决方案-------------

你应该试试

active = 1;
function showTab() {
if ( active == 1) {
$(tab1).fadeIn('fast');
}
else if ( active != 1) {
$(tab1).fadeOut('slow');
}

if ( active == 2) {
$(tab2).fadeIn('fast');
}
else if ( active != 2) {
$(tab2).fadeOut('slow');
}
}

$(nav1).live('hover', function() {
active = 1;
showTab();
});

$(nav2).live('hover', function() {
active = 2;
showTab();
});

请注意,您需要四瓦尔TAB1,TAB2,NAV1 NAV2与此代码。

您的标签选择“如果(主动== 1){...”只调用开头。 你需要再次调用此开关循环。

因为你的问题,如果主动等于2 - 显然事实并非如此。 你的意思是

$(nav1).live('hover', function() {
active += 1;
});

这会增加你悬停$(NAV1)主动每次。 顺便说一句:你的意思是$('NAV1')?

如果我理解你想要做什么,那么你可能会想到“活跃”变量设置为实际的菜单项,而不是数量。 此外,您可能会使用jQuery .live()不正确,此外,jQuery的.delegate()可能是在这种情况下,根据您的标记更加有用。 (见jquery.com有关这些方法的信息)

<html>
<head>
<script type="text/javascript">

// the active nav item:
var active;

// set up the hover events on each nav item only after the DOM is ready:
$(document).ready(function() {

$('.nav li').hover(function() {

// set the active nav item:
active = $(this);

// show the active nav item in the UI as test
alert(this.id);
});

});

</script>
</head>
<body>

<ul class="nav">
<li id="nav1">nav 1</li>
<li id="nav2">nav 1</li>
</ul>

</body>
</html>

分类:JavaScript的 时间:2015-03-15 人气:0
本文关键词: JavaScript中,jQuery的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.797 (s). 10 q(s)