function tractabilityMouseHandler (e) {
            var t = e.target;

            // when rolling over a cell (either with or without data) first close any open popover
            if (t.className && t.className.toString().indexOf('cell-background') >= 0) {
                $('.tractable').popover('destroy');
            }

            if (t.className && t.className.toString().indexOf('tractable') >= 0) {
                var d = t.dataset;
                otGoogleAnalytics.trackEvent('associations', 'hover', 'modality-' + d.mode);
                $(t).popover({
                    html: true,
                    title: d.target + ' tractability data',
                    placement: 'left',
                    content: function () {
                        return getTractabilityPopoverHtml(d);
                    }
                });
                // Another Bootstrap hack: tooltip.destroy() is asynch and often causes null-related issues when
                // calling destroy and show in sequence. Delaying a little the 'show' seems to fix it.
                // Details here: https://stackoverflow.com/questions/27238938/bootstrap-popover-destroy-recreate-works-only-every-second-time
                setTimeout(function () {
                    $(t).popover('show'); // just show it as the table handles the mouseover
                }, 200);
            }
        }
// so we need to check they're actually coming from a tractability cell
so we need to check they're actually coming from a tractability cell
so we need to check they ' re actually coming from a tractability cell
function tractabilityMouseHandler (e) {
            var t = e.target;
            if (t.className && t.className.toString().indexOf('cell-background') >= 0) {
                $('.tractable').popover('destroy');
            }
            if (t.className && t.className.toString().indexOf('tractable') >= 0) {
                var d = t.dataset;
                otGoogleAnalytics.trackEvent('associations', 'hover', 'modality-' + d.mode);
                $(t).popover({
                    html: true,
                    title: d.target + ' tractability data',
                    placement: 'left',
                    content: function () {
                        return getTractabilityPopoverHtml(d);
                    }
                });
                setTimeout(function () {
                    $(t).popover('show'); 
                }, 200);
            }
        }
function tractabilityMouseHandler ( e ) { var t = e . target ; if ( t . className && t . className . toString ( ) . indexOf ( 'cell-background' ) >= 0 ) { $ ( '.tractable' ) . popover ( 'destroy' ) ; } if ( t . className && t . className . toString ( ) . indexOf ( 'tractable' ) >= 0 ) { var d = t . dataset ; otGoogleAnalytics . trackEvent ( 'associations' , 'hover' , 'modality-' + d . mode ) ; $ ( t ) . popover ( { html : true , title : d . target + ' tractability data' , placement : 'left' , content : function ( ) { return getTractabilityPopoverHtml ( d ) ; } } ) ; setTimeout ( function ( ) { $ ( t ) . popover ( 'show' ) ; } , 200 ) ; } }
so we need to check they're actually coming from a tractability cell
so we need to check they ' re actually coming from a tractability cell
// when rolling over a cell (either with or without data) first close any open popover // Another Bootstrap hack: tooltip.destroy() is asynch and often causes null-related issues when // calling destroy and show in sequence. Delaying a little the 'show' seems to fix it. // Details here: https://stackoverflow.com/questions/27238938/bootstrap-popover-destroy-recreate-works-only-every-second-time // just show it as the table handles the mouseover