Vue ContextMenu - Add Tooltips to Items

Use the onItemRendered event to add a title attribute to each item element after it is rendered. The browser displays this text as a native tooltip when a user hovers over the item.

jQuery
JavaScript
$(function() {
    $("#contextMenuContainer").dxContextMenu({
        items: [
            { text: "Item 1", hint: "Description for item 1" },
            { text: "Item 2", hint: "Description for item 2" }
        ],
        onItemRendered: function(e) {
            $(e.itemElement).attr("title", e.itemData.hint);
        }
    });
});
Angular
app.component.html
app.component.ts
<dx-context-menu
    [items]="items"
    (onItemRendered)="onItemRendered($event)">
</dx-context-menu>
import { Component } from "@angular/core";
import { DxContextMenuModule } from "devextreme-angular";
import { ItemRenderedEvent } from "devextreme/ui/context-menu";

@Component({
    selector: "app-root",
    templateUrl: "./app.component.html",
    standalone: true,
    imports: [DxContextMenuModule]
})
export class AppComponent {
    items = [
        { text: "Item 1", hint: "Description for item 1" },
        { text: "Item 2", hint: "Description for item 2" }
    ];

    onItemRendered(e: ItemRenderedEvent) {
        (e.itemElement as HTMLElement).title = e.itemData.hint;
    }
}
Vue
App.vue
<template>
    <DxContextMenu
        :items="items"
        @item-rendered="onItemRendered"
    />
</template>

<script setup lang="ts">
import 'devextreme/dist/css/dx.fluent.blue.light.css';
import { DxContextMenu } from 'devextreme-vue/context-menu';
import type { ItemRenderedEvent } from 'devextreme/ui/context-menu';

const items = [
    { text: 'Item 1', hint: 'Description for item 1' },
    { text: 'Item 2', hint: 'Description for item 2' }
];

function onItemRendered(e: ItemRenderedEvent) {
    (e.itemElement as HTMLElement).title = e.itemData.hint;
}
</script>
React
App.tsx
import React, { useCallback } from 'react';
import 'devextreme/dist/css/dx.fluent.blue.light.css';
import { ContextMenu } from 'devextreme-react/context-menu';
import type { ItemRenderedEvent } from 'devextreme/ui/context-menu';

const items = [
    { text: 'Item 1', hint: 'Description for item 1' },
    { text: 'Item 2', hint: 'Description for item 2' }
];

export default function App() {
    const onItemRendered = useCallback((e: ItemRenderedEvent) => {
        (e.itemElement as HTMLElement).title = e.itemData.hint;
    }, []);

    return (
        <ContextMenu
            items={items}
            onItemRendered={onItemRendered}
        />
    );
}