事件监听器与Chrome的工作方式不同

时间:2016-05-10 08:00:13

标签: javascript event-handling

我实际上有一个类似于

的脚本
<html>
<div id="visualization"></div>
</html>

<? 
//PHP Script that get data from MySQL DB
array_product = array();
//fill array_product with DB data
?>

<script type="text/javascript">
var array_product = <?php echo json_encode($array_product); ?>;
var items = new vis.DataSet();
for (var i = 0; i < array_product_length; i++) {
    var group;
    items.add({
      id: array_product[i],
      group: 0,
      content: '<div class="showProgress" id="'+array_product[i]+'"><b>Case n° ' + array_product[i] + '</b><br><div class="expand" id="'+array_product[i]+'" hidden>' Hidden by default '</div></div>',
      start: array_product[i],
      type: 'box',
     });
  };

var container = document.getElementById('visualization');
  var options = {
    groupOrder: 'content',  // groupOrder can be a property name or a sorting function
    zoomMin: 1000 * 60 * 60 * 24 *7,          // 7 days in milliseconds
    zoomMax: 1000 * 60 * 60 * 24 * 31 * 12,    // about 12 months in milliseconds
   /* maxHeight : 600 */              //Max height in px
  };

  var timeline = new vis.Timeline(container);
  timeline.setOptions(options);
  timeline.setItems(items);
</script>

<script type="text/javascript"> 
$(document).ready(function() 
{ 
  $('.showProgress').click(function(e)
  {
      var id = $(this).attr('id');
      $('#'+id+'.expand').toggle();
      timeline.redraw();    
  })  

  $('.showProgress').dblclick(function(e)
  {
      var id = $(this).attr('id');
      window.open('showProgress.php?var='+id);    
  })

  $('.expand').click(function(e)
  {
      var id = $(this).attr('id');
      window.open('showProgress.php?var='+id);
  }) 
}
</script>

当我使用Firefox时,事件很好,但Chrome或IE是不同的。一次/ 10次事件在Chrome / IE下运行。否则根本就没有。

为什么这么不同?我从来没有遇到过这个问题,也许是vis.js限制?

PS:时间轴是使用vis.js创建的。我在vis.js之前很好地加载了moment.js

<!-- note: moment.js must be loaded before vis.js, else vis.js uses its embedded version of moment.js -->
    <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>

PS2:我缩短了原始代码,因此变量可能会丢失

0 个答案:

没有答案