2016-10-10 3 views
0

Ich habe ein ASP.NET-Repeater-Element, das ich als ein anklickbares Menü verwenden. Ich verwende jQuery, um den img src so einzustellen, dass er anzeigt, welches Element gerade ausgewählt ist. Ich habe eine Lösung, die funktioniert, aber ich frage mich, ob es eine elegantere Art gibt, jQuery zu verwenden ... meine Lösung fühlt sich irgendwie wie ein Workaround an.Verwenden Sie jQuery, um img src auf Postback setzen

Mein HTML:

<div class="c_menuDiv"> 
    <img src="images/check_white.jpg" id="img_check" class="cd_checkImage" width="20px" > 
    <asp:Label ID="lblIssuedTo" runat="server" Text='<%#Bind("IssuedTo")%>'> 
    </asp:Label> 
</div> 

Und mein jQuery, auf Dokument-ready:

$('.c_menuDiv').each(function() { 
    issuedToBox = $('#txt_issuedTo').val();   <<== FROM A TEXTBOX 
    issuedToMenu = $(this).children("span").html(); 
    if (issuedToBox == issuedToMenu){ 
     $(this).find('img:first').attr('src','images/check_selected.jpg'); 
     } 
    }) 

Meine Frage ist, gibt es eine elegantere Möglichkeit jQuery zu verwenden und zu vermeiden, dass js IF-Anweisung? Ich frage nur, weil ich meine jQuery-Fähigkeiten schärfen möchte.

Vielen Dank für jeden Hinweis.

+0

Es wäre wahrscheinlich hilfreich sein, den erzeugten HTML, anstatt Ihre server zu posten Code? – adeneo

+1

Nichts, was "If" mit Geschwindigkeit oder Lesbarkeit schlagen würde. – Teemu

+0

in jquery If-Anweisung ist schnell. Mach dir keine Sorgen Jquery ist auch sehr schnell –

Antwort

1

Sie könnten dasselbe ohne jQuery tun. Sofern Sie einen anderen Grund, es zu benutzen haben ...

<div class="c_menuDiv"> 
    <asp:Image ID="Image1" runat="server" ImageUrl="/images/check_white.jpg" /> 
</div> 

Und dann auf Postback nur die ImageUrl ändern:

Image1.ImageUrl = "/images/check_selected.jpg";