Ich habe eine Reihe von Jquery, die den Inhalt von DivA durch den Inhalt von DivB, DivC, DivD ersetzt, je nachdem, ob li1, li2 oder li3 angeklickt wird.Gibt es eine Möglichkeit, reduncancy in diesem Code zu beseitigen?
Allerdings ist die Jquery im Wesentlichen das gleiche Stück Code für jedes einzelne austauschbare Element wiederholt.
Also, wenn ich 2 Abschnitte auf einer Seite habe, jeder mit 3 Abschnitten des Inhalts zur Auswahl, wird der Jquery-Code sehr lang.
Gibt es eine Möglichkeit, dies zu entfernen, aber immer noch die gleiche Funktionalität?
Dies ist der Code für jede li -
$('.1').click(function() {
$('.mainDescription').fadeOut(400, function() {
$('.mainDescription').html($('#desc1').html()).fadeIn(200);
});
$('.mainImage').fadeOut(400, function() {
$('.mainImage').html($('#desc1Image').html()).fadeIn(200);
});
})
.1 ist die Klasse der li, der auf geklickt wird.
.mainDescription ist die Div, in der der sichtbare Textinhalt angezeigt wird.
.mainImage ist die Div, in der das sichtbare Bild angezeigt wird.
Div # desc1 ist das versteckte Div, aus dem der Textinhalt gezogen wird, wenn auf .li1 geklickt wird.
Div # desc1Image ist das verborgene Div, von dem der Bildinhalt stammt, wenn/li1 angeklickt wird.
Ein komplettes Arbeitsbeispiel finden Sie hier ...
https://jsfiddle.net/qeq82y42/1/
Das ist genial und ich schätze die Erklärung sehr, aber ich kann es nicht funktionieren, wenn ich die divs dupliziere, wenn ich einen der li's klicke, Es ändert das Hauptbild und die Beschreibung in beiden Divs. https://jsfiddle.net/qeq82y42/7/ – Fazy
Ihre img in Ihrem li haben ein Datenzielattribut. Es bezieht sich auf das verwendete div. data-target = "main" verwendet die mainDescription div. data-taget = "main2" würde eine div main2Description verwenden. Gleiches für das Bild div. https://jsfiddle.net/nyxeen/qeq82y42/8/ – Nyxeen
Ich habe auch einen kleinen Fehler in meiner Faust Post. behoben. Du solltest diesen Code nicht kopieren, du solltest versuchen zu verstehen, was er tut, damit du ihn neu erstellen kannst. – Nyxeen