Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor.js:如何通过Javascript动态设置div高度_Javascript_Meteor_Handlebars.js_Dom Events - Fatal编程技术网

Meteor.js:如何通过Javascript动态设置div高度

Meteor.js:如何通过Javascript动态设置div高度,javascript,meteor,handlebars.js,dom-events,Javascript,Meteor,Handlebars.js,Dom Events,我使用的是模板/把手,但当浏览器窗口调整大小时,不会触发任何事件处理程序。不确定如何捕获调整大小事件,以便将div的高度动态设置为在视口内 以下是我迄今为止使用meteor事件图尝试的示例: Template.basic.events({ 'resize window' : function(evt, tmpl){ alert("test"); }, }; 理想情况下,每次调整窗口大小时都会调用此处理程序,这样我就可以使用$(window.height()在

我使用的是模板/把手,但当浏览器窗口调整大小时,不会触发任何事件处理程序。不确定如何捕获调整大小事件,以便将div的高度动态设置为在视口内

以下是我迄今为止使用meteor事件图尝试的示例:

Template.basic.events({
    'resize window' : function(evt, tmpl){
         alert("test");
     },
};

理想情况下,每次调整窗口大小时都会调用此处理程序,这样我就可以使用
$(window.height()
在html中使用
tmpl.find('#main div')设置div的高度

大多数直接依赖jQuery的问题都可以使用回调来解决,如下所示:

Template.basic.onRendered(function() {
  $(window).resize(function() {
    console.log($(window).height());
  });
});
从技术上讲,这是可行的,但由于在渲染过程中从来不会删除
window
,因此这种技术有一个很大的缺点:每次渲染模板时,它都会添加一个新的调整大小处理程序

由于
窗口
始终可用,因此您可以使用
创建的
销毁的
回调来注册和注销处理程序:

Template.basic.onCreated(function() {
  $(window).resize(function() {
    console.log($(window).height());
  });
});

Template.basic.onDestroyed(function() {
  $(window).off('resize');
});
但是,请注意,在中停止调整大小处理程序可能不是您真正想要的。有关更多详细信息,请参阅问题

还请注意,在meteor的当前版本中,您可以检查事件处理程序的数量,如下所示:

$._data($(window).get(0), "events").resize.length