Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
!function () {
var eds_category_menu = function ($) {
var $category_menue_items = $('.edn_category_menu_wrapper li');
$category_menue_items.click(function (e) {
var $target = $(e.target),
$clicked,
$child_list,
$expand_collapse;
if ($target.is('div') || $target.is('a.category0')) {
$clicked = $(this);
$child_list = $clicked.find('> ul');
$expand_collapse = $clicked.find('> div > a.category0');
if ($child_list.length == 1) {
if ($child_list.is(':visible')) {
$child_list.slideUp(200);
$expand_collapse.removeClass('collapse');
$clicked.removeClass('opened');
} else {
$child_list.slideDown(200);
$expand_collapse.addClass('collapse');
$clicked.addClass('opened');
}
}
return false;
}
});
};
if (typeof eds1_8 !== 'undefined')
eds1_8(eds_category_menu);
else if (typeof jQuery !== 'undefined')
jQuery(eds_category_menu);
}();
Nun möchte ich jedoch das Kategorienmenü von Links oder Rechts einsliden lassen. Leider finde ich als Anfänger mit wenig jQuery /JavaScript-Erfahrung den Rank nicht.
Das ist ja keine Python-Frage sondern eine Javascript-Frage, oder besser eine Frage von CSS-Animationen. Was auch das Stichwort wäre, nach dem Du suchen mußt.
Warum benutzt Du typeof um mit undefined zu vergleichen?
Warum fangen alle Deine lokalen Variablen mit $ an? Das bietet keinen Mehrwert, kann man also einfach weglassen.
@Sirius3: ``if (something !== undefined)`` funktioniert — solange niemand auf die Idee kommt `undefined` einen anderen Wert zuzuweisen. ``if (typeof something !== 'undefined')`` funktioniert auch dann noch.
Das mit dem $-Präfix machen viele um jQuery-Objekte zu kennzeichnen.
Mich stört da eher das deklarieren aller Variablen am Anfang und das auch die Werte teilweise zu früh und unnötig berechnet werden.
!function () {
let eds_category_menu = function ($) {
$('.edn_category_menu_wrapper li').click(function (element) {
let $target = $(element.target);
if ($target.is('div') || $target.is('a.category0')) {
let $clicked = $(this);
let $children = $clicked.find('> ul');
if ($children.length == 1) {
let $expand_collapse = $clicked.find('> div > a.category0');
if ($children.is(':visible')) {
$children.slideUp(200);
$expand_collapse.removeClass('collapse');
$clicked.removeClass('opened');
} else {
$children.slideDown(200);
$expand_collapse.addClass('collapse');
$clicked.addClass('opened');
}
}
return false;
}
});
};
if (typeof eds1_8 !== 'undefined')
eds1_8(eds_category_menu);
else if (typeof jQuery !== 'undefined')
jQuery(eds_category_menu);
}();
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
@Laudatio: Na die Sachen erst dann definieren wenn sie auch wirklich gebraucht werden. Und Deklaration und Definition nicht trennen, und ``let`` verwenden, wo das möglich ist. Habe ich doch im Beitrag als Code stehen.
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan