使用唯一选择器关闭所有打开的tipsy工具提示

时间:2014-07-09 08:47:26

标签: javascript jquery html css animation

在我的项目中,我使用jquery tipsy tooltp来验证表单的字段。 我想一次隐藏所有打开的工具提示而不必指定每个元素的id,但不幸的是我不能。 我试过这种方式,但按钮hide2和hide3无法正常工作。

<p><input type="text" name="name" id="name" rel="ttp" /></p>
<p><input type="text" name="sname" id="sname" rel="ttp" /></p>
<p><input type="text" name="email" id="email" rel="ttp" /></p>

<input type="button" value="show" id="show_ttp">
<input type="button" value="hide" id="hide_ttp">
<input type="button" value="hide2" id="hide2_ttp">
<input type="button" value="hide3" id="hide3_ttp">

JS

$('[rel=ttp]').tipsy({trigger: 'manual', gravity: 'w'});

$("#show_ttp").click(function(){
   $('#name').attr('title', 'name').tipsy('show');
   $('#sname').attr('title', 'surname').tipsy('show');
   $('#email').attr('title', 'email').tipsy('show');
});

$("#hide_ttp").click(function(){
   $('#name').tipsy('hide');
   $('#sname').tipsy('hide');
   $('#email').tipsy('hide');
});

$("#hide2_ttp").click(function(){
   $('*').tipsy('hide');
});

$("#hide3_ttp").click(function(){
  $('[rel=ttp]').tipsy('hide');
});

http://jsfiddle.net/tm9V2/

我该怎么办?谢谢

4 个答案:

答案 0 :(得分:3)

我的这就是你要找的东西

  $("#hide3_ttp").click(function(){
        $('[rel=ttp]').each(function(index, element){$(element).tipsy('hide');});
    });

答案 1 :(得分:3)

要隐藏所有醉意的工具提示,只需使用.tipsy类作为选择器并使用jquery隐藏它hide()

代码:

$("#hide2_ttp").click(function(){
    $('.tipsy').hide();
});

Fiddle Demo

答案 2 :(得分:1)

我不知道使用此工具提示插件,但您可以使用force隐藏这些对象。

由于tipsy插件使用hide方法删除了它的对象,你可以使用jQuery .remove()函数,也不要忘记使用javascript附加对象,所以使用$(document).on来操作它们。检查一下:

jsFiddle Demo

$(document).on('click','#hide2_ttp',function(){
    $('.tipsy').eq(1).remove();
});

$(document).on('click','#hide3_ttp',function(){
    $('.tipsy').eq(0).remove();
});

编辑:要隐藏所有打开的工具提示,请使用此功能:

jsFiddle Demo

$(document).on('click','#hideallopen',function(){
    $('.tipsy').remove();
});

答案 3 :(得分:1)

只需包装div / form / span中的所有元素并更改以下代码:

$("#hide2_ttp").click(function(){
    $('*').tipsy('hide');
});

$("#hide2_ttp").click(function(){

 $('#elements input').each(function(){
        $(this).tipsy('hide');
    });
});

其中&#39;元素&#39;是输入包装的id。

通过这种方式,您可以拥有多组输入并分别关闭它们。

FIDDLE:http://jsfiddle.net/tm9V2/8/