0
$(function() {
    $('.challenge').tooltip({html: true, trigger: 'hover'});

    $('.challenge').mouseover(function(){
    var that = $(this);
    var ajaxQueue = $({
    url: "<?=base_url();?>/ajax/challenge_tip",
     type: 'POST',
     cache: true,
     data: {
      'idd': $(this).attr("rel"),
     },
     dataType: 'json',
       success: function(challenge_j) {
         that.tooltip('hide')
        .attr('data-original-title', challenge_j)
        .tooltip('fixTitle')
        .tooltip('show');
       }
  });

  $.ajaxQueue = function(ajaxOpts) {

    var oldComplete = ajaxOpts.complete;

    ajaxQueue.queue(function(next) {

      ajaxOpts.complete = function() {
        if (oldComplete) oldComplete.apply(this, arguments);

        next();
      };

      $.ajax(ajaxOpts);
    });
  };
});
});

js は初めての経験で、助けが必要です。ツールチップには、ブートストラップ ツールチップを使用します。カーソルがリンク上にあるとき、スクリプトは投稿データをコントローラに送信し、コールバック データを受信します。最初のホバー スクリプトではデータを受け取りますが、ツールチップはポップアップせず、2 番目のホバーのみが表示されます。どうすれば修正できますか?

そしてもう1つ質問です。スクリプトは最初のマウス ホバーのみ要求を送信し、次のホバーはキャッシュからの情報を使用できますか?

申し訳ありませんが、私の英語;D

4

2 に答える 2

0

クロスドメインをテストするのは難しい

これが私があなたが必要だと思うものです

$(function() {
  $('.challenge').tooltip({html: true, trigger: 'hover'});

  $('.challenge').mouseover(function(){
    var that = $(this);
    $.ajax({
     url: "<?=base_url();?>/ajax/challenge_tip",
     type: 'POST',
     cache: true,
     data: {
      'idd': $(this).attr("rel"),
     },
     dataType: 'json',
       success: function(challenge_j) {
         that.tooltip('hide')
        .attr('data-original-title', challenge_j)
        .tooltip('fixTitle')
        .tooltip('show');
       }
    });
  });
});
于 2013-02-11T10:52:52.810 に答える
0

ajax クエリのフラグを作成します。

var isTooltipTextEmpty = true;

$('.challenge').mouseover(function(){

    if(isTooltipTextEmpty) {

     ...add ajax query here)

    }

}

そして、このように ajax クエリの準備ができたら、tooltip show イベントをトリガーする必要があります

.success(data) {

     $('.challenge').show();
     isTooltipTextEmpty = false; //prevents multiple ajax queries

}

詳細はこちら: Bootstrap ツールチップ

于 2013-02-10T14:07:24.410 に答える