Можно ли вызвать всплывающую подсказку jquery tispy по результатам вызова ajax? - PullRequest
0 голосов
/ 07 июня 2011

Я выполняю вызов 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">

Если я добавлю $('#share_text').tipsy('show') в блок else, он будет работать только при наведении мыши на текстовое поле.Как заставить его показывать самому?

1 Ответ

0 голосов
/ 07 июня 2011

Вы не можете просто использовать функцию 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');
}
...