49e91a5cadcd320b71d118e30ee2544f66da60d5
hiram
  Fri Nov 13 10:59:27 2020 -0800
trackDb does not seem to exist for every track name refs #21980

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index f13a7fb..730b127 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -4492,48 +4492,44 @@
     jsonFileName: function(imgElement, trackName)
     {
       var jsonFile=imgElement.src.replace("hgt/hgt_", "hgt/" + trackName + "_");
       jsonFile = jsonFile.replace(".png", ".json");
       return jsonFile;
     },
 
     // called from: updateImgForId when it has updated a track in place
     // need to refresh the event handlers and json data
     updateMouseOver: function (trackName)
     {
       var tdData = "td_data_" + trackName;
       var tdDataId  = document.getElementById(tdData);
       var imgData = "img_data_" + trackName;
       var imgElement  = document.getElementById(imgData);
+      if (imgElement && tdDataId) {
         if (mouseOver.tracks[trackName]) {
-        if (tdDataId) {
             $( tdDataId ).mousemove(mouseOver.mouseMoveDelay);
             $( tdDataId ).mouseout(mouseOver.popUpDisappear);
-          if (imgElement) {
             mouseOver.fetchMapData(mouseOver.jsonFileName(imgElement, trackName), trackName);
-          }
-        }
         } else {
+	  if (hgTracks.trackDb[trackName]) {
             var trackType = hgTracks.trackDb[trackName].type;
             var validType = false;
             if (trackType.indexOf("wig") === 0) { validType = true; }
             if (trackType.indexOf("bigWig") === 0) { validType = true; }
             if (validType) {
-          if (tdDataId) {
               $( tdDataId ).mousemove(mouseOver.mouseMoveDelay);
               $( tdDataId ).mouseout(mouseOver.popUpDisappear);
-            if (imgElement) {
               mouseOver.fetchMapData(mouseOver.jsonFileName(imgElement, trackName), trackName);
             }
           }
         }
       }
     },
 
     // given an X coordinate: x, find the index idx
     // in the rects[idx] array where rects[idx].x1 <= x < rects[idx].x2
     // returning -1 when not found
     // if we knew the array was sorted on x1 we could get out early
     //   when x < x1
     findRange: function (x, rects)
     {
       var answer = -1;  // assmume not found