2017-07-22 2 views
0

Das ist mein html:JAVASCRIPT Pop-up-Box anzuzeigen

<div class="popup" onclick="itemPopup()"> 

    <img src="{{$item->item->img}}"> 
    <span class="popuptext" id="myPopup"> 

    {{$item->title}}<br> 
    <a href="/sell-item/{{$item->id}}" class="btn-sm btn-danger" style="text-decoration: none"> 
    Sell for {{$item->price/2}} <img src="/img/gold.png"></a><br> 
    <p>{{$item->description}}</p> 

    </span> 
</div> 
@endforeach 

Das ist mein js ist:

function itemPopup() { 
    var popup = document.getElementById("myPopup"); 
    popup.classList.toggle("show"); 
} 

Wenn ich auf das Bild klicken Sie auf das Pop-up-Shows wie folgt aus:

enter image description here

Egal, ob ich auf das zweite Schwert klicke, die Popup-Box erscheint immer noch auf dem ersten Schwert mit seiner id. Wie behebe ich dieses Problem?

+0

Teilen auch Ihre CSS, besser Sie eine Live-Demo teilen. Ich weiß, was ist dein Problem, aber ohne eine Live-Demo mit CSS und js kann nicht helfen – Pedram

+0

@pedram gibt es keine CSS. – feknaz

Antwort

1

Weisen Sie jeder Iteration Ihres Blades eindeutige IDs zu und übergeben Sie diese ID dann im JavaScript-Funktionsaufruf. Ihr HTML wird so aussehen.

<div class="popup" onclick="itemPopup('myPopup{{$item->id}}')"> 

    <img src="{{$item->item->img}}"> 
    <span class="popuptext" id="myPopup{{$item->id}}"> 

    {{$item->title}}<br> 
    <a href="/sell-item/{{$item->id}}" class="btn-sm btn-danger" style="text-decoration: none"> 
    Sell for {{$item->price/2}} <img src="/img/gold.png"></a><br> 
    <p>{{$item->description}}</p> 

    </span> 
</div> 

Und das JavaScript:

function itemPopup(ID) { 
    var popup = document.getElementById(ID); 
    popup.classList.toggle("show"); 
} 
+0

'> Wie bekomme ich jetzt die" span id "? – feknaz

+0

Bearbeitete meine Antwort, um das HTML einzuschließen. Ich weise jeder Iteration eine eindeutige ID zu und übergebe sie dann im JavaScript-Aufruf –

+0

Was soll jetzt in ID geschrieben werden? – feknaz

Verwandte Themen