2013-04-30 2 views
0
나는 그것에) 현재 선택된 탭의 높이를 얻을 PostMessage를 (로 값을 전달하려는

후 DOM 대신 jQuery를-목적은 부모 iframe이 :의 jQuery tabsshow : ui.panel가 최초 실행

// ... 
    jQuery("#my-tabs").tabs({ 
     selected: ran, 
     show: function(event, ui) { 
      try 
      { 
       console.log(ui.panel); 

       var height = ui.panel.height(); 

       if (window.postMessage && parentUrl != undefined) 
        parent.postMessage("height:" + height, parentUrl); 
      } 
      catch (c) 
      { 
       console.log(c.message); 
      } 
     } 

    }); 

작품 페이지가로드되고 무작위로 선택된 탭이 표시되면 문제가 없습니다. '하지만, 수 - UI 1.8.6와 jQuery를 1.4.3 사용 Object #<HTMLDivElement> has no method 'height'

I'am을 :

그러나 다른 탭을 선택할 때, ui.panel는 jQuery를 너무 높이에 접근, 더 이상 객체가 아닌 경우는() 충돌 이 이상한 행동에 관해서는 아무것도 찾지 못한다. ('tab example') ... bind ('tabsshow'... 같은 일)

답변

0

height() 메소드를 검사하고 고정시키고 ui.panel을 jQuery 객체로 구문 분석했다.

   if (typeof(ui.panel.height) == "function") { 
        var height = ui.panel.height(); 
       } 
       else { 
        var panel = jQuery(ui.panel); 
        var height = panel.height(); 
       }