Aivan ylivoimaisesti eniten tässä JS/DOM-hommassa vituttaa se, että jos on joku ongelma, ja sitä googlaa, saa miljoona eri vaihtoehtoa, joista yksikään ei sitten toimi. Menee ihan vitusti aikaa kun kokeilee kaikki ei-toimivat vaihtoehdot läpi. En tiedä yhtään toista ohjelmointiympäristöä, jossa on lähellekään yhtä paljon rikkinäisiä ohjeita. Nytkin pitäisi niinkin simppeli juttu saada tehtyä kuin tsekattua, että onko elementille tietty attribuutti ja jos on, tehdä jotain. En edes enää tiedä, montako eri vaihtoehtoa olen kokeillut, mutta mikään ei tunnu toimivan. attr() ei tunnu toimivan, eikä hasAttr(). hasAttribute():sta selain valittaa, että ei sellaista olekaan. Ei toimi nämäkään:
How to Check If an Element Has Attribute Using jQuery and JavaScript?. Ja tällaistakin syntaksia ehdotettiin: $(this).is("[name]"). Juu, ei.
Toinen juttu on sitten se, että en ole vielä törmännyt kuvaukseen siitä, miten sivun lataus tapahtuu. Lähinnä kiinnostaisi se, että voiko minulle olla lukematon määrä $(document).ready()-funktioita?
Ja vielä: tarvitseeko noiden $(".xxx").on() -tyyppisten jquery-juttujen olla ready():n sisässä vai ajetaanko ne kaikki automaattisesti sivun latauksessa?
Tällä hetkellä olen menossa tällaisessa hässäkässä:
Koodi:
$(".btnRemove").on("click", function (e) {
e.preventDefault();
var curr = $(this);
if (confirm("Oletko varma?")) {
img_src = $(this).data("replace");
$.ajax({
type: "POST",
dataType: "json",
url: $(this).data("save"),
data: {
itemId: JSON.stringify(itemId),
},
success: function (data) {
if (curr.attr("replace")) {
$("#image").attr("src", img_src);
}
},
});
}
});
Ilman tuota viimeistä ehtoa homma toimii, joten siinä ei vika ole. Ja tuo curr on tuossa kun alkoi vaikuttaa, että $(this) ei ole jostain syystä enää voimassa success-kohdassa.