Materialise工具提示仅适用于函数外部

时间:2017-08-16 14:41:13

标签: javascript jquery html materialize

我在处理这个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运行时动态更改工具提示中的文本。

1 个答案:

答案 0 :(得分:0)

我认为正在发生的事情是您的函数调用之外的代码会立即运行。所以它会在您的工具提示上运行,在实现之前更改数据属性甚至有机会将其设置为工具提示。

您需要更改内容,然后重新初始化工具提示()以获取更新。

有关场景1 的说明: 您的mouseover代码适用于该情况,因为实现处理的属性与工具提示内的实际内容不同。

根据我的记忆,实现实际设置内容,并且不允许在不重新初始化工具提示的情况下更改内容。

工具提示的位置在>>> filename=bytes('aa.txt', 'utf-8') 事件时初始化,因此您的代码会更新位置,然后实现会在>>> m.awrite(filename, 40) aa.txt 0 事件中识别此更新。