2014-10-08 50 views
1

使用d3.js,我有一個奇怪的問題。下面的代碼工作正常:d3:只有兩個「開」可能?

var zoomHandler = d3.behavior.zoom() 
         .scaleExtent([min, max]) 
         .on("zoom", function() { 
          // do something; 
         }).on("zoomend", function() { 
          // do something; 
         }); 

但是,我也希望我的zoomHandler停用另一個事件,所以我試圖延長這樣的代碼:

var zoomHandler = d3.behavior.zoom() 
         .scaleExtent([min, max]) 
         .on("zoom", function() { 
          // do something; 
         }).on("zoomend", function() { 
          // do something; 
         }).on("otherEvent", null); 

但現在,在運行時,我得到例外

Uncaught TypeError: Cannot read property 'on' of undefined 

爲什麼我只能添加兩個聽衆而不是三個?

回答

2

你的問題不是事件的數量,而是事件類型「otherEvent」(或者你在代碼中使用的任何東西)。縮放行爲僅支持zoom events

的支持以下類型:

  • zoomstart - 在變焦手勢(例如,touchstart)的開始。
  • 放大 - 當視圖改變時(例如touchmove)。
  • zoomend - 在當前縮放手勢(例如touchend)的末尾。
相關問題