我想动态获取的宽度div.progress杆从ng-click
。我move($event)
对元素的函数div.progress-bar
返回带有元素的事件div.progress-bar
。但是,当我单击div.time
其中的哪个时div.progress-bar
,它将返回带有元素的事件div.time
。
我只想要进度条的宽度,即使我单击他的孩子也是如此。
HTML:
<div class="progress-bar" ng-click="move($event)">
<div class="time" ng-style="{'width': (current_track.time_current / current_track.time_total * 100) + '%'}"></div>
</div>
控制器:
$scope.move = function(e) {
console.log(e);
console.log(e.srcElement.offsetWidth);
var widthOfProgressBar = e.srcElement.offsetWidth;
/* ... */
};
您必须检查clicked元素是否为.progress-bar
,如果不是,则获取父元素:
var bar = e.srcElement.className === 'time'
? e.srcElement.parentNode
: e.srcElement;
var widthOfProgressBar = bar.offsetWidth;
/* ... */
或替代更多的Angular / jqLite方法:
var element = angular.element(e.srcElement),
bar = (element.hasClass('time') ? element.parent() : element)[0];
var widthOfProgressBar = bar.offsetWidth;
/* ... */
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句