2016-07-26 44 views
0

我正在嘗試創建自定義工具提示元素。我需要新建的工具提示元素的高度和寬度。我總是得到offsetHeight和offsetWidth爲0.如何在角度指令中找到新創建元素的高度和寬度

var tooltip = angular.element('<div ng-style="tooltipStyle"><div class="ng-tooltip-arrow"></div>\n{{content}}</div>'); 
    tooltip.attr({ 
      'class': 'ng-tooltip ' + scope.theme + ' ' + scope.direction 
    }); 
    var tooltipElem = $compile(tooltip)(scope); 
    var height = tooltipElem[0].offsetHeight; <!-- This is always 0 --> 
    element.hover(function() { 
     element.after(tooltipElem); 
    }, function() { 
     tooltipElem.remove(); 
    }); 
+0

也許顯示更多的上下文?此時,DOM上的工具提示是否呈現? – ajmajmajma

+0

是的。工具提示正在DOM上呈現。在提示工具提示時出現IS問題。這就是爲什麼我需要創建工具提示的寬度和高度。 – Debananda

回答

0

非常棘手,但有可能!

編譯後,再次將其套在角元素:

var $tooltipElem = angular.element(tooltipElem)[0]; 

,然後獲取高度和寬度:

var height = $tooltipElem.clientHeight; 
    var width = $tooltipElem.clientWidth; 

順便說一句,在最後,如果你想設置的提示你可以這樣做:

tooltipElem.css({ 
      top: top+'px', 
      left: left+'px' 
    }); 

整個工作示例:https://codepen.io/vsmori/pen/GORZdQ

相關問題