Lightcase.js和dataTables.js冲突

时间:2015-06-24 09:13:14

标签: javascript jquery html iframe datatables

我使用lightcase.js将另一个页面作为iframe加载到我的页面上。在这里,我还使用dataTables.js向我的用户显示数据,这样他就可以点击与该记录相关的一个眼睛图标,这样他就可以查看更多信息,并在与iframe相同的页面中打开该页面。

问题是,在我的数据的第1页中,它工作正常。但是当它有更多记录并转到页面时> 1,灯箱停止工作,所以当用户点击眼睛图标页面时,浏览器将重定向到该页面。

示例代码:

<script src="http://localhost/mysite/assets/js/jquery.dataTables.min.js"></script>
<script src="http://localhost/mysite/assets/js/lightcase.js"></script>
<table id="example" class="display" cellspacing="0" width="100%">
  <thead>
    <tr>
      <th>ID</th>
      <th>Contact #</th>
      <th>Time</th>
      <th>Product</th>
      .....
      .....
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>9</td>
      <td>0718064010</td>
      <td>2015-06-23 11:30:20</td>
      <td>takas</td>
      .....
      .....
      <td><a href="http://localhost/mysite/index.php/inquiry/view/9" data-rel="lightcase:myCollection"><i class="fa fa-eye"></i></a></td>
    </tr>
  </tbody>
</table>
<script>
  $(document).ready(function () {
    $('#example').DataTable();
  });
</script>
<script type="text/javascript">
  jQuery(document).ready(function ($) {
    $('a[data-rel^=lightcase]').lightcase();
  });
</script>

请帮我解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:2)

这是因为您只将点击处理程序附加到<a> - 可见行上的标记,第1页。每次重绘dataTables时都必须附加处理程序,即当用户单击另一页时。用以下内容替换两个文档就绪部分:

$(document).ready(function () {
   $('#example').on('draw.dt', function() {
       $('a[data-rel^=lightcase]').lightcase();
   });
   $('#example').DataTable();
});