You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Kent Yao (Jira)" <ji...@apache.org> on 2026/02/28 17:52:00 UTC

[jira] [Created] (SPARK-55764) Use delegated event listener for Bootstrap 5 Tooltip lazy initialization

Kent Yao created SPARK-55764:
--------------------------------

             Summary: Use delegated event listener for Bootstrap 5 Tooltip lazy initialization
                 Key: SPARK-55764
                 URL: https://issues.apache.org/jira/browse/SPARK-55764
             Project: Spark
          Issue Type: Sub-task
          Components: Web UI
    Affects Versions: 4.2.0
            Reporter: Kent Yao


Currently, Bootstrap 5 tooltips are eagerly initialized on DOMContentLoaded via initialize-tooltips.js, plus scattered re-initialization calls in 5+ JS files (spark-dag-viz.js, timeline-view.js, etc.) after dynamic content renders.

Proposed improvement: Replace eager tooltip initialization with a single delegated mouseover event listener that lazily creates Tooltip instances on first hover.

Benefits:
- Single source of truth — no per-page boilerplate or re-init calls
- Handles dynamically rendered content automatically (DAG viz, timeline, tables)
- Better performance — only creates Tooltip for elements actually hovered
- Simpler code — remove scattered new bootstrap.Tooltip() calls

Implementation approach:
{code:javascript}
document.addEventListener('mouseover', function(e) {
  var el = e.target.closest('[data-bs-toggle="tooltip"]');
    new bootstrap.Tooltip(el);
    el.dispatchEvent(new MouseEvent('mouseover'));
  }
}, { passive: true });
{code}

Part of SPARK-55760 (Spark Web UI Modernization)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org