2009-08-17 3 views
0

Ich habe eine generierte Liste von Links, wo jeder Link eine eindeutige ID (Nummer) und eine Klasse namens "load" hat.jQuery Bild bei Linkklick ändern (mit der gleichen Nummer in der ID)

Ich möchte ein Bild auf der anderen Seite der Seite mit der gleichen Nummer in der ID als der Link, auf den ich geklickt habe, ändern. Da die ID-on-Elemente eindeutig sind, habe ich die Ordner-ID [Nummer] vor allen Bildern hinzugefügt

Dies ist, was ich bis jetzt (nicht funktioniert). Ich bin mir nicht sicher, ob dies auch nur annähernd zu korrigieren, aber es fühlt sich an wie es :)

$(function(){ 
    $(".load").click(function(){ 
     var element = $(this); 
     var link_id = element.attr("id"); 
     alert(link_id); 
     $("#folderid", link_id).attr("src", "img/folder_open.gif") 
    }); 
}); 

Meine Bilder und Links sieht in dem Code:

<img src="img/folder.gif" id="folderid5" class="img_folder" alt="Folder"/> 
<a href="#" id="5" class="load img_id5"> 

Dank

Antwort

2

Es sieht aus wie Sie

$('#folderid' + link_id).attr(...) 
+0

Dank! Das ist die Syntax ... –

0

http://docs.jquery.com/Events/live sollte den Trick für generierte Sachen tun. auch: ein Semikolon (;) nach attr (..., ...)

$("#folderid", link_id).attr("src", "img/folder_open.gif"); 
0

wählen bedeutet Wenn Sie Ihre Bilder bedeuten haben ihre IDs als :

folderid [1], FolderID [2], etc

die '[' Charakter wahrscheinlich posin g ein Problem mit jQuery. Sie können zu entkommen es versuchen und mit:

$("img#folderid\\["+link_id+"\\]").attr("src", "img/folder_open.gif"); 

Ich habe nicht das Bedürfnis hat, bevor Zeichen in jQuery zu entkommen, weil ich konnte einfach meine Namenskonvention ändern, aber ich glaube, die oben arbeiten sollten.

Ein anderer Weg, um die Klammern aus der ID und der Verwendung zu entfernen wäre zu gehen:

$("img#folderid"+link_id).attr("src", "img/folder_open.gif"); 
0

Sie nah sind. Sie müssen die ID mit dem Selektor des Bildes verknüpfen, anstatt ein Komma zu verwenden. Versuchen Sie diesen Code:

$(function(){ 
    $(".load").click(function(){ 
     var element = $(this); 
     var link_id = element.attr("id"); 
     alert(link_id); 
     $("#folderid" + link_id).attr("src", "img/folder_open.gif") 
    }); 
}); 
0

Ich glaube, Sie brauchen a + kein, auf dieser Linie:

$("#folderid", link_id).attr("src", "img/folder_open.gif") 

zu

$("#folderid" + link_id).attr("src", "img/folder_open.gif") 
Verwandte Themen