# Eigenes Javascript funktioniert nach dem Laden per Ajax auf Detailseite nicht mehr

**URL:** https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082
**Category:** Programmierung
**Created:** [30. Oktober 2018 um 08:52 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082 "2018-10-30T08:52:43Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![HEPI](https://avatars.discourse-cdn.com/v4/letter/h/a87d85/32.png) [@HEPI](https://forum.shopware.com/u/HEPI)
#### Post date: [30. Oktober 2018 um 08:52 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/1 "2018-10-30T08:52:43Z")

</div>

Hallo,  
leider bin ich in Javascript/ jQuery noch nicht so gut. Habe meine Detailseite praktisch fertig. Vorher habe ich bei Klick auf eine Farbe die Seite neu laden lassen. Nachdem ich jetzt umgestellt habe auf Laden per Ajax, funktioniert mein Javascript nicht mehr.

Es ist eine ganz einfache Sache: Der Kunde wählt eine Farbe und alle Größen des Artikels werden in einer Tabelle ausgegeben. Nun kann er in die einzelnen Eingabefelder die Menge eingeben. Wird die Gesamtmenge vom Lagerbestand überschritten, färbt sich das Eingabefeld rot und der Button In den Warenkorb bleibt nicht anklickbar. Hier mal mein Script:

```
$('.menge').keyup(function () {
    var qty = 0;
    var ok = true;
    $(".menge").each(function (i) {
        if (!$(this).prop("disabled")) {
            $(this).removeAttr('style'); //Fehler Umrandung zurücksetzten
        }
        temp = parseInt($(this).val());
        temp1 = parseInt($(".mengemax" + i).val());
        if (temp > 0) {
            if (temp > temp1) {
                $(this).css("border", "2px solid red"); //Fehler Umrandung
                //$(this).css("background", "red");
                ok = false;
                $(".buybox--button,.column--quantity-link").prop({
                    disabled: true
                });
            }
        }
    });

    if (ok == true) { //die Eingabe ist in Ordnung
        $(".menge").each(function () {
            if ($(this).val() > 0) {
                qty = 1;
            }
        })
    }
    if (qty == 1) {
        $(".buybox--button,.column--quantity-link").prop({
            disabled: false
        });
    } else {
        $(".buybox--button,.column--quantity-link").prop({
            disabled: true
        });
    }
});

```

Kann mir bitte jemand auf die Sprünge helfen, wie ich es auch zum laufen bringe, wenn die Detailseite per Ajax (Javascript) nachgeladen wird?

Vielen Dank schon mal.

Gruß HEPI

---

<div class="post-metadata">

### Author: ![christiantrade](https://avatars.discourse-cdn.com/v4/letter/c/c4cdca/32.png) [@christiantrade](https://forum.shopware.com/u/christiantrade)
#### Post date: [30. Oktober 2018 um 10:46 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/2 "2018-10-30T10:46:45Z")

</div>

Wo hast du umgestellt auf “Laden per Ajax”? Auf der Detailseite? Wo kann man denn da was umstellen, wäre mir neu.

Ansonsten musst du dich sicherlich an ein [Event des Shopware jQuery Plugins](https://developers.shopware.com/designers-guide/javascript-statemanager-and-pluginbase/#global-jquery-event-observer)hängen, sodass dein Script nach der Plugin Aktion ausgeführt wird.

Wie ist die URL zu deinen Shop?

---

<div class="post-metadata">

### Author: ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)
#### Post date: [30. Oktober 2018 um 10:57 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/3 "2018-10-30T10:57:13Z")

</div>

Mhhh, fange mal den Ajax-Nachlade-event ab und initiere dein Skript dann immer neu.Wer weiss was der Eventlistener hier vergeigt?&nbsp;Am besten auch immer console.log(event) ausgeben. Ich teste auch ganze Funktionen in der Console.

---

<div class="post-metadata">

### Author: ![HEPI](https://avatars.discourse-cdn.com/v4/letter/h/a87d85/32.png) [@HEPI](https://forum.shopware.com/u/HEPI)
#### Post date: [30. Oktober 2018 um 11:06 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/4 "2018-10-30T11:06:26Z")

</div>

@christiantrade‍ z.B. in der config\_variant in der Zeile

```
{if $theme.ajaxVariantSwitch}data-ajax-select-variants="true"{else}data-auto-submit="true"{/if}

 {if $theme.ajaxVariantSwitch **x** }data-ajax-... schreiben. Dann wird nicht mehr per Ajax nachgeladen.

```

@brettvormkopp‍ Habe es jetzt zumindest schon mal so weit, dass mir ein Alert ausgegeben wird, wenn ins Textfeld geschrieben wird&nbsp; ![Grin](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/70033cde8e8ff79cfa538293ae71318d6f788423.png "Grin")

Wird noch ein hartes Stück arbeit … und das beim letzten Test, bevor ich damit online gehen wollte …

---

<div class="post-metadata">

### Author: ![christiantrade](https://avatars.discourse-cdn.com/v4/letter/c/c4cdca/32.png) [@christiantrade](https://forum.shopware.com/u/christiantrade)
#### Post date: [30. Oktober 2018 um 11:27 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/5 "2018-10-30T11:27:14Z")

</div>

@HEPI‍

Dann würde ich mich wie gesagt mal an ein Event vom Plugin hängen, welches dein Script nachdem nachladen aufruft.

Das jQuery Plugin ist dieses -\>&nbsp;[shopware/jquery.ajax-variant.js at 5.5 · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/5.5/themes/Frontend/Responsive/frontend/_public/src/js/jquery.ajax-variant.js)

Laut Plugin am besten an dieses Event hängen -\>&nbsp;[shopware/jquery.ajax-variant.js at 5.5 · shopware/shopware · GitHub](https://github.com/shopware/shopware/blob/5.5/themes/Frontend/Responsive/frontend/_public/src/js/jquery.ajax-variant.js#L150)

Wie man sich an das Event hängt, habe ich bereits oben gepostet. Also wäre es pirnzipiell:

```
$.subscribe('plugin/swAjaxVariant/onRequestData', function() {
    deineFunction();
})

```

Damit wird deine Funktion aufgerufen, nachdem der Content via Ajax nachgeladen worden ist.

---

<div class="post-metadata">

### Author: ![HEPI](https://avatars.discourse-cdn.com/v4/letter/h/a87d85/32.png) [@HEPI](https://forum.shopware.com/u/HEPI)
#### Post date: [31. Oktober 2018 um 06:04 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/6 "2018-10-31T06:04:26Z")

</div>

Danke. Habe es jetzt fertig. Muss nur noch Kleinigkeiten im CSS korrigieren, dann geht die neue Version online&nbsp; ![Wearing-Sunglasses](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wearing-sunglasses.png "Wearing-Sunglasses")

---

<div class="post-metadata">

### Author: ![HEPI](https://avatars.discourse-cdn.com/v4/letter/h/a87d85/32.png) [@HEPI](https://forum.shopware.com/u/HEPI)
#### Post date: [31. Oktober 2018 um 10:55 UTC](https://forum.shopware.com/t/eigenes-javascript-funktioniert-nach-dem-laden-per-ajax-auf-detailseite-nicht-mehr/56082/7 "2018-10-31T10:55:11Z")

</div>

@christiantrade‍&nbsp;

Ist jetzt fertig. Der Link zum Shop ist: [www.shirt-guenstig-kaufen.de](https://www.shirt-guenstig-kaufen.de)

&nbsp;
