萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> DivCSS教程 >> MTJS中的元素顯示和隱藏的封裝

MTJS中的元素顯示和隱藏的封裝

class="area"> 頁面元素的顯示和隱藏在前端開發中經常用到的,原來我是這樣寫的,

  以下為引用的內容:

  hide: function(el) {
         el.style.display = "none";
  }
  show: function(el) {
          el.style.display = "block";
      }

  這裡在show函數上就有個問題,如果元素是display:inline話就有問題了,然後我又改成了:

  以下為引用的內容:

  hide: function(el) {
          el.style.display = "none";
  }
  show: function(el) {
          el.style.display = " ";
      }

  這也是經常看到的一種,但是當用CSS類設置元素的display時,是computedStyle,而不屬於style對象,方法display=”只是取消style對象的display值;最後記過查找在《精通javascript》找到了一下方法,

  以下為引用的內容:

  /**
      * 隱藏指定的DOM對象
      * @id hide
      * @param {String} el DOM對象
      * @return {none}
      */
      hide: function(el) {
          el = this.get(el);//獲取對象
    var curDisplay=this.getStyle(el,"display");//獲取對象的display屬性值,
    if(curDisplay!="none"){
     el._curDisplay=curDisplay;//增加對象的私有屬性_curDisplay用來存放元素隱藏前的display屬性值;
    }
    el.style.display = "none";
      },
      /**
      * 顯示指定的DOM對象
      * @id show
      * @param {String} el DOM對象
      * @return {none}
      */
      show: function(el) {
          el = this.get(el);
          el.style.display = el._curDisplay||""; //取對象的display屬性值設置成元素隱藏前的display屬性值,如果沒有就去“”
      },

  歡迎大家發表意見和建議!

copyright © 萬盛學電腦網 all rights reserved