根据问题和文章的数量,简单的tip.html = 'new value';
应该有效,但由于某些原因,对我来说并非如此。
在这里,我创建了一个演示,演示tip.html
修改在渲染一次后不会改变尖端的身体:
重现的步骤:
情景1:
情景2:
我错过了什么?如何在运行时更改它(场景1)?
答案 0 :(得分:4)
您不能只设置属性,一旦创建了组件,您需要调用一个方法,以便它实际更新底层DOM:
tip.update('new');
答案 1 :(得分:0)
您可以使用ExtJS 4.2.x中的beforeshow
侦听器(可能更早)完成此操作。
var changeCount = 1;
var tip = Ext.create('Ext.tip.ToolTip', {
target: 'hoverme',
html: 'Press this button to clear the form',
listeners: {
// Change content dynamically depending on which element triggered the show.
beforeshow: function updateTipBody(tip) {
tip.update( "Changed " + changeCount + " times" );
changeCount ++;
}
}
});
document.getElementById('btn').addEventListener('click', function(e) {
tip.html = 'new';
return false;
})