根据问题和文章的数量,简单tip.html = 'new value';
应该可以工作,但由于某些原因,对我来说并非如此。
在这里,我创建了一个演示来演示tip.html
修改在渲染一次后不会改变提示的主体:
重现步骤:
场景一:
- 将鼠标移到红色方块上以查看提示
- 按下按钮
- 看到提示没有改变
场景二:
- 按下按钮(不 - 不要将鼠标放在红色方块上)
- 查看小费的值已更改
我错过了什么?如何在运行时更改它(场景 1)?
根据问题和文章的数量,简单tip.html = 'new value';
应该可以工作,但由于某些原因,对我来说并非如此。
在这里,我创建了一个演示来演示tip.html
修改在渲染一次后不会改变提示的主体:
重现步骤:
场景一:
场景二:
我错过了什么?如何在运行时更改它(场景 1)?
您不能只设置一个属性,一旦创建了组件,您需要调用一个方法,以便它实际更新底层 DOM:
tip.update('new');
您可以使用beforeshow
ExtJS 4.2.x(可能更早版本)中的侦听器来完成此操作。
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;
})