如何解决是否可以基于ajax调用的结果触发jquery tispy工具提示?
| 我正在执行ajax调用,成功执行以下操作:success: function(data) {
var allok= data.success;
if(allok == true) {
$(\"#share_text\").addClass(\'share_success\').delay(2000).queue(function(next){
$(this).removeClass(\"share_success\");
next();
});
} else {
$(\"#share_text\").addClass(\'share_fail\').delay(2000).queue(function(next){
$(this).removeClass(\"share_fail\");
next();
});
}
$(\'#share_message\').html(data.message);
$(\"#share_submit\").val(\"Share\");
$(\"#share_submit\").removeAttr(\"disabled\")
}
在allok = false
(else块)的位置,它应该在执行addClass / removeClass的同时触发此文本框下方的提示工具提示。
<input name=\"whatever_name\" id=\"share_text\" type=\"text\" value=\"Blah blah\" size=\"40\" title=\"This is a tooltip\">
如果将“ 3”添加到else块中,则仅当您将鼠标悬停在文本框上时它才起作用。如何让它自己显示?
解决方法
您不能简单地使用jquery trigger()函数吗?
$(\'#share_text\').trigger(\'mouseenter\'); // to show it
$(\'#share_text\').trigger(\'mouseleave\'); // to hide it
不要忘记在运行上述代码之前先将tipsy()行为附加到#share_text。
$(\'#share_text\').tipsy();
在您的代码中,它应如下所示:
$(function(){
// things to do on document.ready:
$(\'#share_text\').tipsy();
// ... more stuff
// ... until your ajax callback
success: function(data) {
var allok= data.success;
if(allok == true) {
$(\"#share_text\").addClass(\'share_success\').delay(2000).queue(function(next){
$(this).removeClass(\"share_success\");
next();
});
} else {
$(\"#share_text\").addClass(\'share_fail\').delay(2000).queue(function(next){
$(this).removeClass(\"share_fail\");
next();
});
}
$(\'#share_message\').html(data.message);
$(\"#share_submit\").val(\"Share\");
$(\"#share_submit\").removeAttr(\"disabled\");
// simulate a mouseenter event on share_text,to launch tipsy().show
$(\'#share_text\').trigger(\'mouseenter\');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。