Prova ändra raden
this.value += $(".selectImage").attr("title");
till
this.value += $(this).attr("title");
26 svar · 2 285 visningar · startad av bikic
Hej!
Jag skulle behöva ha hjälp med en sak. Jag listar alla bilder rakt upp och ner. Varje bild har en egen titel, filnamn och id. Alla bilder har också classnamnet "selectImage" för att trigga igång en jqueryfunktion.
$(".selectImage").click(function() {
jQuery.fn.extend({
insertAtCaret: function(myValue){
return this.each(function(i) {
this.value += $(".selectImage").attr("title");
this.focus();
})
}
});
$(".editor").insertAtCaret('test');
$.fn.colorbox.close();
return false;
});
Problemet med ovanstående kod är att den hela tiden hämtar samma titel och det är från den första bilden. Hur kan jag göra så att den hämtar titeln på den bild jag klickat på?
Tacksam för svar!
Prova ändra raden
this.value += $(".selectImage").attr("title");
till
this.value += $(this).attr("title");
Inte för att vara sån, men varför extend:ar du jquery på ett click event?
tronez: den ger inget värde alls.
voigt: det är först efter klicket som jag vill köra funktionen.
Hur kan vi hitta en lösning då?
att extenda jquery på det sättet känns rätt så fel, sen vet jag inte var du har fått koden ifrån, men du använder på fel sätt känns det som.
$(".selectImage").click(function() {
var value = "";
$(".selectImage[title]").each(function() {
value+=$(this).attr("title");
});
$(".editor").val(value).focus();
return false;
});
Utan att ha en susning om vad du har för element på .editor
Voigt: ditt exempel gav mig alla titlar, jag vill bara ha den man klickar på. Samtliga bilder har också ett unikt id om man nu kan använda detta för att ta reda på vilken titel man vill åt.
tack för hjälpen! uppskattas verkligen
Du förklarar rätt dåligt måste jag säga ;)
Vad vill du göra? Skall den bygga ut strängen som finns på .editor hela tiden eller skall den ersätta hela värdet?
$(".selectImage").click(function() {
var value = $(".editor").val() + $(this).attr("title");
$(".editor").val(value).focus();
$.fn.colorbox.close();
return false;
});
Eller om du skall kunna toggle på vilka bilder som skall vara valda:
$(".selectImage").click(function() {
var
editor = $(".editor"),
$(this).classToggle("addImage"),
value = "";
$(".selectImage[title].addImage").each(function() {
value+=$(this).attr("title");
});
editor.val(value).focus();
$.fn.colorbox.close();
return false;
});
Okej, jag ska försöka förklara bättre.
Jag har en lista som visas efter det att man klickat upp en dialogruta. I denna listan finns alla uppladdade bilder på servern. När man klickar på en av bilderna så ska den infoga bildens filnamn i textarean (dvs. klassnamnet "editorn"). Efter den har infogat filnamnet i textarean så stänger den dialogrutan ($.fn.colorbox.close();)
Allt fungerar bra bara det att den hämtar första bildens titel från listan och inte den jag faktiskt klickar på.
Jag vill dock att den placerar bildens filnamn där musmarkören är, det fungerar inte nu.
Jag vill dock att den placerar bildens filnamn där musmarkören är, det fungerar inte nu.
Var kommer filnamnet ifrån då? Finns inget sådan kod i ditt exempel.
Är det i title? Vad är det för element du kör med?
bild är det en img element? Eller text? title bör fungera.
bilden är en img element
sätt alt text som är samma som din title
Hur får jag den infogna texten att hamna där musmarkören befinner sig i textarean då?
Vilken textarea? .editor? Sätt en title på den.
Varför ska jag ha en titletag på min textarea? Har aldrig haft detta och har klarat mig bra. Men vad har det med att jag vill få den infogade texten där min musmarkör är?