【发布时间】:2013-01-06 17:09:51
【问题描述】:
我的HTML结构如下:
<div class="boxes workshops wrapl">
<a href="#" id="showw1" class="workshops-button lfloat">Show it</a>
</div>
<div class="boxes exhibitions">
<a href="#" id="showex1" class="exhibitions-button lfloat">Show it</a>
</div>
<div class="boxes gallery">
<a href="#" id="showex1" class="gallery-button lfloat">Show it</a>
</div>
.boxes 类是彼此相邻设置的正方形。大约有30 框。
最初,所有框都设置为opacity:1,所有-button 类都设置为opacity:0。
但是,如果我将鼠标悬停在.boxes 内,链接也是可点击的。
我的.navi 菜单:
<div id="navi">
<a href="#"><div id="t0"><span>Home</span></div></a>
<a href="#"><span>Events</span></a>
<a href="#"><span>Gallery</span></a>
<a href="#"><span>Exhibitions</span></a>
</div>
我的javascript 代码用于更改opacity。
<script type="text/javascript">
var isHome = true;
$(function () {
$("#navi a").click(function() {
c = $(this).text().toLowerCase();
isHome = c=="home";
if (isHome){
$('.events-button, .workshops-button, .gallery-button, .sponsors-button, .hospitality-button, .lectures-button, .exhibitions-button').animate({opacity:0.0},500);
$(".boxes").animate({opacity: 1.0}, 500 );
} else {
$('.' + c).animate({opacity: 1.0}, 500 );
$('.' + c + "-button").animate({opacity: 1.0}, 500 ).addClass('activehack');
$('.activehack').not('.' + c + "-button").animate({opacity: 0.0}, 500 );
$('.boxes').not('.' + c).animate({opacity: 0.3}, 500 );
}
});
});
</script>
当-button 元素不可见时,如何删除它们的click 事件?
编辑 #1
我不必单击.-button 元素。
当我点击home 时,所有.boxes 都应该出现,但每个.boxes 中的<a>..</a> 元素一定不能点击。
然后,如果我单击.events,则只有具有.events 类的.boxes 应该出现以及具有.events-button 类的<a>...</a> 元素[并且它们现在应该可以单击了。]
【问题讨论】:
-
你为什么使用不透明而不是隐藏/淡出?
-
@popnoodles:因为我想使用fadeIn 和fadeOut 效果。我知道
fadeIn和fadeOut也是专用的Jquery函数。不过,我只是在使用它。 -
fadeIn 和 fadeOut 在达到 0% 不透明度后隐藏元素,这样您就不会遇到这个问题。无论如何,我已经在使用不透明度的情况下给出了答案。
-
更新了我的答案 - 略有误读,请检查它是否有效。
-
@popnoodles:这行不通。
标签: javascript jquery html css click