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,我需要一些帮助。对于工具提示,我使用引导工具提示。当光标悬停在链接上时,脚本将发布数据发送到控制器并接收回调数据。在第一个悬停脚本中接收数据,但没有弹出工具提示,只有第二个悬停。我该如何解决?

还有一个问题。脚本能否仅在第一次鼠标悬停时发送请求,而下一次悬停将使用缓存中的信息?

对不起我的英语;D

4

2 回答 2

0

为 ajax 查询创建标志。

var isTooltipTextEmpty = true;

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

    if(isTooltipTextEmpty) {

     ...add ajax query here)

    }

}

当ajax查询像这样准备好时,您需要触发工具提示显示事件

.success(data) {

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

}

在此处查看更多信息:引导工具提示

于 2013-02-10T14:07:24.410 回答
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 回答