我有以下示例html,有一个100%宽度的DIV.它包含一些元素.在执行窗口重新调整大小时,可以重新定位内部元素,并且div的尺寸可以改变.我问是否可以挂钩div的尺寸变化事件?以及如何做到这一点?我目前将回调函数绑定到目标DIV上的jQuery resize事件,但是,没有输出控制台日志,请参见下文:

<html>
<head>
<script type="text/javascript" language="javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" language="javascript">
$('#test_div').bind('resize', function(){
console.log('resized');
});
</script>
</head>
<body>
<div id="test_div" style="width: 100%; min-height: 30px; border: 1px dashed pink;">
<input type="button" value="button 1" />
<input type="button" value="button 2" />
<input type="button" value="button 3" />
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在努力学习Angular 2.
我想使用@ViewChild Annotation 从父组件访问子组件.
这里有一些代码行:
在BodyContent.ts我有:
import {ViewChild, Component, Injectable} from 'angular2/core';
import {FilterTiles} from '../Components/FilterTiles/FilterTiles';
@Component({
selector: 'ico-body-content'
, templateUrl: 'App/Pages/Filters/BodyContent/BodyContent.html'
, directives: [FilterTiles]
})
export class BodyContent {
@ViewChild(FilterTiles) ft:FilterTiles;
public onClickSidebar(clickedElement: string) {
console.log(this.ft);
var startingFilter = {
title: 'cognomi',
values: [
'griffin'
, 'simpson'
]}
this.ft.tiles.push(startingFilter);
}
}
Run Code Online (Sandbox Code Playgroud)
而在FilterTiles.ts中:
import {Component} from 'angular2/core';
@Component({
selector: 'ico-filter-tiles'
,templateUrl: 'App/Pages/Filters/Components/FilterTiles/FilterTiles.html'
})
export class FilterTiles {
public tiles = [];
public constructor(){};
} …Run Code Online (Sandbox Code Playgroud) 我看了很多帖子,但没有完全按照我的意愿去做.我有一张超出页面宽度的桌子,由于各种原因我需要得到它的宽度.
我用了:
@ViewChild('tableToMeasure') elementView: ElementRef;
Run Code Online (Sandbox Code Playgroud)
然后将#tableToMeasure放在桌面上.然而,这似乎是错误的:
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'nativeElement' of undefined
Run Code Online (Sandbox Code Playgroud)
即使这适用于页面的父div,也只能在页面的父div上工作.
有任何想法吗?我需要在页面加载和页面调整大小上获得它的宽度,并将另一个divs宽度更改为相同的值.