如果鼠标移动太快,Ajax工具提示不会消失 - php

我的网页上的每个项目都有一个用ajax加载的工具提示。当鼠标移动得太快时,它不会考虑mouseleave事件。然后,我尝试在页面上加载工具提示内容。但是,内容很多,因此加载需要多四秒钟的时间:/

我能做什么?

这是我的jQuery代码:

$('.main').on({
    mouseenter: function(){
        var id = $(this).parent().data('candy');
        if(id != 0){ 
            $.ajax({
                url: 'tooltip.php',
                type: 'get',
                data: { 'type': 'candy', 'item_id': id },
                global : false,
                success: function(data){
                    $('.candyTooltip').html(data);
                    $('.candyTooltip .layer_item').show();
                }
            });
        }
    },
    mouseleave : function(){
        $('.candyTooltip .layer_item').hide();
    }
}, '.candy');

另外,我不知道它是否相关,但是SQL查询花费1,2ms,PHP脚本花费3,94ms。

参考方案

我终于找到了一种方法!

我要做的就是将ajax请求放在一个变量中,并在mouseleave上中止它。

因此,现在看起来像这样:

$('.main').on({
  mouseenter: function(){
      var id = $(this).parent().data('candy');
      if(id != 0){ 
         query = $.ajax({
              url: 'tooltip.php',
              type: 'get',
              data: { 'type': 'candy', 'item_id': id },
              global : false,
              success: function(data){
                  $('.candyTooltip').html(data);
                  $('.candyTooltip .layer_item').show();
              }
          });
      }
  },
  mouseleave : function(){
      if (query) { query.abort(); }
      $('.candyTooltip .layer_item').hide();
  }
}, '.candy');

jQuery Ajax加载仅适用于单个单词变量 - php

在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

jQuery Ajax响应在Firefox上不起作用 - php

这是php中的响应。我可以确认数据还可以。 $ajax_response = array( 'product_code' => $ajax_products, 'filter' => $ajax_filter ); echo json_encode($ajax_response); exit(); 这是ja…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…