首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示div元素onClick

显示div元素onClick
EN

Stack Overflow用户
提问于 2013-02-20 18:43:24
回答 2查看 166关注 0票数 0

我有两个div:#mosaic-content#mosaic-content-1。最初,加载时,#mosaic-content将与类.active一起显示,而#mosaic-content-1将被隐藏。

我有4个链接:

代码语言:javascript
复制
Home
Event
Gallery
About

只有当用户单击About时,才会显示div #mosaic-content-1。对于所有其他3次点击,它必须保持隐藏。我写了以下代码来实现这一点:

代码语言:javascript
复制
$(function () {
    $("#mosaic-content").addClass("active");
    $("#mosaic-content-1").hide();
});
$("#home, #event, #gallery").click(function () {    
    $("#mosaic-content").show();
    $("#mosaic-content").addClass("active");
    $("#mosaic-content-1").hide();
    $("#mosaic-content-1").removeClass("active");

});
$("#about").click(function () { 
    $("#mosaic-content").hide();
    $("#mosaic-content").removeClass("active");
    $("#mosaic-content-1").show();
    $("#mosaic-content-1").addClass("active");
});

然而,在上面的代码中,如果显示#mosaic-content,然后用户单击事件或图库,函数会再次运行,这会使我的网站变得有点慢( divs充满了很多HTML content)。

有没有更好的方法来实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-20 18:49:57

使用.is(':visible')检查div是否已可见

代码语言:javascript
复制
$(function () {
    $("#mosaic-content").addClass("active");
    $("#mosaic-content-1").hide();
});
$("#home, #event, #gallery").click(function () {   
if(!$("#mosaic-content").is(':visible')){
    $("#mosaic-content").show();
    $("#mosaic-content").addClass("active");
    $("#mosaic-content-1").hide();
    $("#mosaic-content-1").removeClass("active");
}

});
$("#about").click(function () { 
if($("#mosaic-content").is(':visible')){
    $("#mosaic-content").hide();
    $("#mosaic-content").removeClass("active");
    $("#mosaic-content-1").show();
    $("#mosaic-content-1").addClass("active");
}
});
票数 0
EN

Stack Overflow用户

发布于 2013-02-20 19:30:55

使用类,而不是id。

隐藏为默认块.mosaic-content-1:

代码语言:javascript
复制
$(".mosaic-content-1").hide();

在show block .mosaic-content之后

代码语言:javascript
复制
$(".mosaic-content").show();

块导航中的Onlick函数:

代码语言:javascript
复制
$(".navigation a").click(function() {
   if(!$(this).hasClass("about");) {
      $(".navigation a").removeClass("active");
      $(this).addClass("active");
      $(".mosaic-content-1").hide();
      $(".mosaic-content").show();
      } else {
          $(".navigation a").removeClass("active");
          $(this).addClass("active");
          $(".mosaic-content").hide();
          $(".mosaic-content-1").show();
      }

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14977869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档