Hallo, wenn ich eine Aufklappliste zum Hamburger-Menü hinzufügen möchte, mit Untermenüs, die ich entweder beim Klicken oder beim Überfahren mit der Maus sehe, sollte ich es so machen oder gibt es etwas Effizienteres?
Ich kann einzelne Elemente über eine Komponente zum Hamburger-Menü hinzufügen, aber ich muss dort Unterelemente bereitstellen, die beim Überfahren angezeigt werden.
Können Sie mir raten? Danke
<script type="text/discourse-plugin" version="0.1">
api.decorateWidget('menu-links:before', helper => {
return helper.h("li", [
helper.h("a.google", {
href:"https://google.com",
title: "Google",
}, helper.h('p', 'Google')),
]);
});
</script>
EDIT: GELÖST
Aber noch eine Sache, wie füge ich target blank hinzu?
2 „Gefällt mir“
keegan
(Keegan George)
29. Juni 2022 um 16:32
2
Ein Widget zurückgeben:
Sie könnten Ihr eigenes benutzerdefiniertes Widget an api.decorateWidget zurückgeben, was Ihnen viel mehr Kontrolle in Bezug auf das Anwenden von Attributen, Status, Aktionen usw. gibt.
Sie könnten also Folgendes tun:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
Erstellen Sie dann innerhalb von javascripts/discourse/widgets/custom-menu-links.js ein Widget mit dem createWidget-Helfer:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
Schauen Sie sich dieses Thema an, um einige der Funktionen von Widgets kennenzulernen:
This is out of date. See Widgets, the Widget API and their roadmap?
The latest builds of Discourse are much faster at rendering topics thanks to our re-written post stream . I’ve written up our new plugin API but so far haven’t explained how the code all fits together. The purpose of this topic is to allow Discourse developers to understand how the new code works.
What’s a Virtual DOM?
A Virtual DOM is a data structure that enables browsers to re-render dynamic content very quickly. The techniq…
Ich habe Widgets in meiner Dropdown-Header-Theme-Komponente ziemlich oft verwendet. Möglicherweise finden Sie einige des Codes hilfreich.
Hinzufügen von target=“_blank”
Sie fügen es dem attributes-Objekt hinzu:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);
2 „Gefällt mir“