在我的项目中,我使用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');
});
我该怎么办?谢谢
答案 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();
});
答案 2 :(得分:1)
我不知道使用此工具提示插件,但您可以使用force隐藏这些对象。
由于tipsy插件使用hide方法删除了它的对象,你可以使用jQuery .remove()
函数,也不要忘记使用javascript附加对象,所以使用$(document).on
来操作它们。检查一下:
$(document).on('click','#hide2_ttp',function(){
$('.tipsy').eq(1).remove();
});
$(document).on('click','#hide3_ttp',function(){
$('.tipsy').eq(0).remove();
});
编辑:要隐藏所有打开的工具提示,请使用此功能:
$(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/