Utworzono przycisk z atrybutem o nazwie "załadowany" i wartością początkową "nie". Po kliknięciu przycisku używam jakiegoś ajaxa i na samym jego końcu próbuję ustawić "ładowany" atrybut na "tak", aby ajax nie był uruchamiany ponownie, jeśli użytkownik kliknie przycisk więcej niż jeden raz .Użycie jQuery .attr lub .prop do ustawienia wartości atrybutu nie działa
mam coś takiego: http://jsfiddle.net/PDW35/2/
Kliknięcie przycisku nie powoduje zmiany załadowany na „tak”. Jeśli jednak zrobić powiadomienie prawo po wywołaniu .attr tak:
alert($(this).attr('loaded'));
alert box nie zawiera „tak”, która nie pomaga, ponieważ po użytkownik kliknie ten sam kod wyżej stawia się "Nie" pole ostrzeżenia na ekranie.
Wszystko zachowuje się tak samo, jeśli używam .prop zamiast .attr. Czy brakuje mi tutaj punktu, czy też .prop i .attr po prostu nie działają z atrybutami niestandardowymi?
EDIT: Updated jsfiddle użyciu ajax na podstawie poniższych uwag: http://jsfiddle.net/PDW35/5/
Czy oglądasz oryginalny kod źródłowy przez przypadek podczas sprawdzania atrybutu 'loaded'? Ponieważ działa w tym skrzypku dla mnie w Chrome – CodingIntrigue
Za każdym razem klikam przycisk po raz drugi i tak dalej - to ostrzeże "tak". Atrybut jest ustawiony prawidłowo. Ale spróbuj użyć dozwolonych atrybutów zaczynających się od 'data-' i użyj funkcji jQuery 'data()' do pracy z nimi. –
Jeśli tworzysz własny atrybut, dodaj go przedrostkiem 'data-'. Ponadto nazwy atrybutów nie mogą zawierać podkreślników. – Blender