代码之家  ›  专栏  ›  技术社区  ›  DEVMBM

隐藏div不起作用?

  •  1
  • DEVMBM  · 技术社区  · 15 年前

    我有一个div,它在默认情况下是隐藏的,当使用单击show链接时,将调用以下javascript方法:

    function ChangeControlVisibility(elementID) {
        var  element = $("#" + elementID);
        if (element.css('display') != 'block' && element.css('display') != 'table') {
            element.show();
            var tempElement = $('div.expanded');
            if (tempElement.length > 0) {
                tempElement.css('background-image', 'url(../images/arrow1.gif)');
            }
        }
        else {
            element.hide();
            var tempElement = $('div.expanded');
            if (tempElement.length > 0) {
                tempElement.css('background-image', 'url(../images/arrow2.gif)');
            }  
        } 
    }
    

    此步骤有效,但当我在page\u load event调用上一个方法时,该方法不起作用:

    以前的代码有问题吗????

    3 回复  |  直到 15 年前
        1
  •  1
  •   jAndy    15 年前

    你是在 .ready() 处理者?

    顺便说一下,除非您真的需要显式检查显示状态 table

    $(document.ready(function(){
       if (!element.is(':visible')){
       }
       else{
       }
    });
    

    裁判。: .is() .ready() :visible

        2
  •  1
  •   Nick Craver    15 年前

    您可以使用 .toggle() 以及 :visible selector ,如下所示:

    function ChangeControlVisibility(elementID) {
      var vis = $("#" + elementID).toggle().is(':visible');
      $('div.expanded').css('background-image', 'url(../images/arrow' + (vis ? '1' : '2') + '.gif)');
    }
    

    这将切换可见性(通过 .hide() / .show()

        3
  •  0
  •   Moin Zaman    15 年前

    看看:hidden和:visible jQuery选择器。试着这样做:

    函数ChangeControlVisibility(elementID){ var元素=$(“#”+elementID); 隐藏元素.show(); 如果(tempElement.长度>0){ 临时元素.css('background-image','url(../images/arrow1.gif)'; } 其他{ var tempElement=$('扩展分区'); 如果(tempElement.长度>0){ 临时元素.css('background-image','url(../images/arrow2.gif)';
    } }