You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax加载DataTables内容后缩略图hover事件无法触发显示大图问题

jQuery DataTables Ajax动态加载后缩略图hover事件绑定失效解决方案

问题描述

  • 使用DataTables在表格第一列展示缩略图,配合jQuery实现鼠标hover缩略图时展示原始大图的效果
  • 静态加载表格内容时功能完全正常,切换为Ajax动态加载表格后,hover事件无法绑定到新增的缩略图元素
  • 已尝试多种方案、查阅事件委托相关资料未成功,需要可行的实现方案

相关DOM结构

<tr role="row" class="odd">
 <td class="dtr-control"><a href="../images/cont/257.jpg" class="hover">
   <img src="../images/redcont_thumb/1757.jpg" class="mediabank-preview-thumbnail"></a>
 </td>
 <td>Description</td>
</tr>

初始失效代码

$('a.hover').hover(function(e){ 
  var href = $(this).attr('href');
  $('<img id="largeImage" src="' + href + '" alt="image" />')
  .css({'top':e.pageY + offsetY,'left':e.pageX + offsetX})
  .appendTo('body');
}, function(){
  $('#largeImage').remove();  // Delete displaying picture
});
$('a.hover').mousemove(function(e){
  $('#largeImage').css({'top':e.pageY + offsetY,'left':e.pageX + offsetX});
});
$('a.hover').click(function(e){
  e.preventDefault();
});

最终可用实现方案

问题核心是直接绑定事件只会作用于页面初始化时已存在的DOM元素,Ajax动态新增的元素不会被绑定,改用事件委托绑定到页面加载时就存在的父级表格容器上,同时替换hover方法为mouseenter+mouseleave事件即可:

// Hover images
    var offsetX = 20;
    var offsetY = -250  
    $('#table_mediaBank').on('mouseenter', 'a.hover', function (e) {        
        var href = $(this).attr('href');
        $('<img id="largeImage" src="' + href + '" alt="image" />')
        .css({'top':e.pageY + offsetY,'left':e.pageX + offsetX})
        .appendTo('body');
    });
    $('#table_mediaBank').on('mouseleave', 'a.hover', function () {             // Verwijder het displayen van de afbeelding
        $('#largeImage').remove();
    });
    $('#table_mediaBank').on('mousemove', 'a.hover', function (e) {         verplaatsen
        $('#largeImage').css({'top':e.pageY + offsetY,'left':e.pageX + offsetX});
    });
    $('#table_mediaBank').on('click', 'a.hover', function (e) {         
        e.preventDefault();
    });

内容的提问来源于stack exchange,提问作者Nico van Wijk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:06:00