0

私は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 = falseaddClass / removeClassを実行しているときに、このテキストボックスの下にあるほろ酔いツールチップをトリガーする場所(elseブロック)。

<input name="whatever_name" id="share_text" type="text" value="Blah blah" size="40" title="This is a tooltip">

$('#share_text').tipsy('show')elseブロックに追加すると、テキストボックスにマウスオーバーした場合にのみ機能します。どうすればそれを単独で表示できますか?

4

1 に答える 1

0

単にjquerytrigger()関数を使用することはできませんか?

$('#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');
}
于 2011-06-06T21:55:40.323 に答える