显示工具提示时无法删除标题元素

时间:2014-01-15 19:26:15

标签: jquery tooltip

我正在向title添加div,其中包含以下简单的行:

j$("#div").attr("title", "My title.");

div内部是一个选择器框。当您在选择器框中选择某些内容时,它会调用代码来移除title的{​​{1}}。 (如果重要的话,这是使用div函数。)

.change

如果未显示当前标题工具提示,则此代码非常有用。但是,如果正在显示标题工具提示,则jQuery无法从j$("#div").removeAttr("title"); 中删除title。由于选择器位于div内,因此鼠标悬停在选择器上会显示div。向下选择选择器中的项目会使工具提示显示整个时间。即使我强制关闭工具提示,title代码仍然无法删除removeAttr,因为代码的执行速度比工具提示的淡出更快。

我要么想要一种成功停止动画的方法(我尝试在停止时使用变体,并且似乎永远不会真正得到正确的工具提示来运行停止),这是一种延迟删除代码的方法标题直到淡出结束(我尝试title,这不起作用),或者即使工具提示仍处于打开状态,也可以强行删除标题。

3 个答案:

答案 0 :(得分:0)

你可以使用fadeOut()或类似的东西。淡出完成后执行函数回调。

$( "#div" ).click(function() {
  $( "#div" ).fadeOut( "slow", function() {
    // Animation complete.
  });
});

答案 1 :(得分:0)

您还没有说过如何创建工具提示,这很重要。

如果您正在使用jQueryUI的工具提示功能(如果没有,为什么不呢?),那么您必须使用tooltip('destroy')取消绑定工具提示,因此:

jsFiddle Working Demo

<强> HTML:

<div id="div">
    <select id="divSel">
        <option value="0">Choose One:</option>
        <option value="1">One</option>
        <option value="2">Two</option>
    </select>
</div>
<input type="button" id="mybutt" value="Add Title" />

<强>的jQuery / JavaScript的:

$(document).tooltip();

$('#divSel').change(function() {
    $(document).tooltip( "destroy" );
    $("#div").removeAttr("title");
});

$('#mybutt').click(function() {
    $("#div").attr("title", "This is a title added to display a tooltip.");
    $(this).hide();
});

<强>的CSS:

#div {width:20%;height:80px;background:wheat;margin-bottom:10px;}
#divSel{margin-top:30px;margin-left:30px;}

答案 2 :(得分:0)

没有任何代码,很难说出可能出现的问题,但我无法重新创建此问题。

请参阅this fiddle

<强> HTML

<div id="div" title="My title.">
<div>#div</div>
<select id="sel">
    <option value="0">Add tooltip</option>
    <option value="1">Remove tooltip</option>
    <option value="">Do Nothing</option>
</select>
</div>
<div>Log:</div>
<div id="logger"></div>

<强> jQuery的/使用Javascript

var $log = $('#logger');
function log(text){
    $log.append($('<div></div>').html(text));
}
$('#sel').change(function(){
    switch(parseInt($(this).val())){
        case 0:
            $('#div').attr("title", "My title.");
            log('Added tooltip');
            break;
        case 1:
            $('#div').removeAttr("title");
            log('Removed tooltip');
            break;
        default:
            log('Nothing happened');
    }
});

<强> CSS

#div{height:200px;width:200px;background:#FFFFF0;border:1px solid red;}