我在处理这个html元素时遇到问题:
<a id="q" class="btn tooltipped" data-position="bottom" data-delay="50" data-tooltip="I am a tooltip">Hover me!</a>
使用此JavaScript代码:
$('#q').attr('data-tooltip', 'new data');
请查看以下情况:
情景1
< script >
function A() {
// Do function A stuff
}
function B() {
// Do function B stuff
$('#q').attr('data-position', 'right'); // THIS WORKS
$('#q').attr('data-tooltip', 'new data'); // THIS DOESN'T WORK
}
function C() {
// Do function C stuff
} < /script>
场景2
< script >
$('#q').attr('data-tooltip', 'new data'); // THIS WORKS
function A() {
// Do function A stuff
}
function B() {
// Do function B stuff
$('#q').attr('data-position', 'right'); // THIS WORKS
}
function C() {
// Do function C stuff
} < /script>
为什么代码 $('#q')。attr('data-tooltip','new data'); 只能在函数外部使用?我的目标是让代码在函数B中工作。为什么一个代码有效但另一个代码无效?如场景中所示。 1.我希望在函数B运行时动态更改工具提示中的文本。
答案 0 :(得分:0)
我认为正在发生的事情是您的函数调用之外的代码会立即运行。所以它会在您的工具提示上运行,在实现之前更改数据属性甚至有机会将其设置为工具提示。
您需要更改内容,然后重新初始化工具提示()以获取更新。
有关场景1 的说明:
您的mouseover
代码适用于该情况,因为实现处理的属性与工具提示内的实际内容不同。
根据我的记忆,实现实际设置内容,并且不允许在不重新初始化工具提示的情况下更改内容。
工具提示的位置在>>> filename=bytes('aa.txt', 'utf-8')
事件时初始化,因此您的代码会更新位置,然后实现会在>>> m.awrite(filename, 40)
aa.txt
0
事件中识别此更新。