带有AJAX请求的MouseOver/MouseOut事件



我最近才遇到这个问题,我希望我可以从这里获得一些顶级想法。这是我的代码的样子:

$(document).on('mouseover', '#element', function(){
    $.ajax({
          // generate hover view
     })
});
$(document).on('mouseout', '#element', function(){
     // remove hover view
});

正确的执行订单将为鼠标 - 生成视图-Mouseout -Hide View。

但是,由于视图部分取决于Ajax,因此如果用户悬停了超快,则有可能在Ajax调用完成之前触发鼠标out事件。在这种情况下,在Ajax调用完成后,由于已经触发了鼠标out事件,因此视图将仅坐在DOM中。

您是否尝试使用承诺?这将需要进行调整,但类似:

$.when( $.ajax( "someajaxfile.txt" ) ).then(function( data, textStatus, jqXHR ) {
  $(document).on('mouseout', '#element', function(){
     // remove hover view
});
});

您可能还需要解开鼠标。

相关内容

  • 没有找到相关文章

最新更新