dedlfix: Per jquery ID eines Elements ändern

Beitrag lesen

Tach!

Du möchtest also die Sortierbarkeit ein- und ausschalten.

Ich verwende da einfach UI sortable

Wenn du ein Zeitungsabonnement loswerden willst, kannst du deinen Namen ändern, auf dass dann das Abo ins Leere läuft, weil der Zusteller deinen Briefkasten nicht mehr findet. Mal ganz abgesehen davon, dass das Abonnement damit nicht zu Ende ist und im Hintergrund rumzuwerkeln versucht.

Derselbe Trick klappt aber nicht, wenn du ein Kleidungsstück ausziehen willst. Dieses ist nämlich nicht mit deinem Namen verbunden sondern mit deinem Körper.

So weist man das Sortable-Widget einem Element zu:

$('#bezeichner').sortable();

Der Bezeichner wird nur dazu verwendet, das Element zu finden. Das Widget hängt sich nun an das Element. Es ist keinesfalls so, dass das Widget nun jedes Mal neu das Element sucht, wenn es damit etwas tun möchte. Das geht auch nicht, weil beispielsweise Event-Handler nicht am Widget sondern am Element hängen.

Du musst also nicht am Element rumfummeln, sondern dem Widget erzählen, dass es seine Arbeit einstellen soll. Laut dessen Dokumentation kennt es dazu disable und enable.

Meine Ursprungsidee war ja, per JS-Funktion eine andere JS-Funktion ein- bzw. ausschalten zu können. Hab aber nicht gefunden, wie ich das machen kann...

Sowas geht nicht. Funktionen sind da oder nicht. Sie sind aber nicht da und tun nichts, wenn man sie aufruft. Wenn man ihre Arbeit nicht haben möchte, muss man ihren Aufruf verhindern. Oder die Funktion beendet sich selbst sofort. Oder man entfernt die Referenz auf die Funktion und ersetzt sie mit einem Dummy. Das setzt jedoch voraus, dass die Funktion über eine Referenz aufgerufen wird und nicht über ihren Namen. - Das ganze Ansinnen kannst du aber vergessen, wenn du sowas wie das Sortable-Widget verwendest, dessen Code du nicht ändern möchtest. Da bleibt dir nur, in die Dokumentation zu schauen, ob dein Anliegen mit irgendeinem Parameter steuerbar ist oder mit einem Methodenaufruf ausgelöst werden kann.

dedlfix.