Chcę powiązać obiekt JavaScript z elementem HTML. Czy jest na to prosty sposób?
Zauważyłem, że HTML DOM definiuje metodę setAttribute i wygląda na to, że jest ona zdefiniowana dla dowolnej nazwy atrybutu. Jednak może to tylko ustawić wartości ciągów. (Możesz oczywiście użyć tego do przechowywania kluczy w słowniku).
Szczegóły (choć najbardziej interesuje mnie pytanie ogólne):
W szczególności mam elementy HTML reprezentujące węzły w drzewie i próbuję włączyć przeciąganie i upuszczanie, ale zdarzenie upuszczania jQuery da mi tylko elementy przeciągane i upuszczane.
Wydaje się, że normalnym wzorcem przekazywania informacji do programów obsługi zdarzeń jest tworzenie elementów HTML w tym samym czasie, w którym tworzysz obiekty JavaScript, a następnie definiowanie programów obsługi zdarzeń przez zamykanie tych obiektów JavaScript - jednak nie działa to zbyt dobrze w tym przypadku przypadek (mógłbym mieć globalny obiekt, który zapełnia się, gdy zaczyna się przeciąganie ... ale to wydaje się nieco nieprzyjemne).
źródło
data()
działa , używając odpowiedzi, której udzielił bobince, więc jeśli nie używasz jeszcze jquery, równie dobrze możesz go użyć.Obiekty JavaScript mogą mieć przypisane do nich dowolne właściwości, nie musisz nic specjalnego robić, aby na to zezwolić. Obejmuje to elementy DOM; chociaż to zachowanie nie jest częścią standardu DOM, miało miejsce już w pierwszych wersjach JavaScript i jest całkowicie niezawodne.
źródło
document.expando = false
przerwy jQuery.data też?<td>
), a obiekt, który przypisałem do tego pola, był # toString'ed. Byłem bardzo zdezorientowany, widząc td.scope === '[obiekt obiekt]'.