Javascript Ember仅在初始呈现时调用jQuery代码
在我的Ember组件类中,我想运行一些jQuery代码来隐藏一些元素。但是,我希望此代码仅在初始渲染时运行,而不在其他事件(例如网格刷新)上运行 我尝试添加到“didRender”,但运行了多次Javascript Ember仅在初始呈现时调用jQuery代码,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,在我的Ember组件类中,我想运行一些jQuery代码来隐藏一些元素。但是,我希望此代码仅在初始渲染时运行,而不在其他事件(例如网格刷新)上运行 我尝试添加到“didRender”,但运行了多次 还尝试从“didInsertElement”钩子调用上述函数,但jQuery在该阶段找不到元素。如果在didInsertElement()上找不到元素,则可以尝试在短时间延迟后运行jQuery代码,例如 从“@glimmer/Component”导入组件 从'@ember/runloop'导入{late
还尝试从“didInsertElement”钩子调用上述函数,但jQuery在该阶段找不到元素。如果在
didInsertElement()
上找不到元素,则可以尝试在短时间延迟后运行jQuery代码,例如
从“@glimmer/Component”导入组件
从'@ember/runloop'导入{later};
导出默认类MyComponent扩展组件{
didInsertElement(){
稍后(函数(){
$(“.my grid footer value”).hide();
});
}
}
here类似于setTimeout()
,但它在中运行。由于没有指定延迟,所以应该尽快运行(希望在执行时网格页脚元素会存在)
作为一般规则,无论何时进行任何DOM操作,都应该(通常)将其包装在runloop方法中,以便Ember可以安排代码在正确的时间运行
但是,作为一种Ember最佳实践,您应该尝试避免自己修改DOM,而是让Ember处理它(使用类似于
{{{{{{if this.showPositionElements}}}…{{/if}}
,然后切换showPositionElements
)。如果在diInsertElement()
上找不到元素,例如,您可以尝试在短时间延迟后运行jQuery代码
从“@glimmer/Component”导入组件
从'@ember/runloop'导入{later};
导出默认类MyComponent扩展组件{
didInsertElement(){
稍后(函数(){
$(“.my grid footer value”).hide();
});
}
}
here类似于setTimeout()
,但它在中运行。由于没有指定延迟,所以应该尽快运行(希望在执行时网格页脚元素会存在)
作为一般规则,无论何时进行任何DOM操作,都应该(通常)将其包装在runloop方法中,以便Ember可以安排代码在正确的时间运行
但是,作为一种Ember最佳实践,您应该尝试避免自己修改DOM,而是让Ember来处理它(使用类似于
{{{{if this.showPositionElements}}…{{/if}
,然后切换showPositionElements
)。diInsertElement
应该可以工作。如果不是的话,还有其他的问题。或者在更新的余烬版本中使用did insert
修饰符。重新调试did insertelement
应该可以。如果不是的话,还有其他的问题。或者在更新的余烬版本中使用did insert
修饰符。重新调试会很好
hidePositionElements: function() {
var self = this;
var currPosLabelElements = $( ".my-grid-footer-value");
currPosLabelElements.hide();
},