Ich habe eine Tabelle, wo ich alle meine Elemente mit class = "shift" an eine Klick-Funktion gebunden habe.Jquery off() für ein bestimmtes Element
Jetzt, da ich auch ein anderes click -Ereignis auf einen Teil des Elements verwenden muss, möchte ich das click -Ereignis auf Element lösen, wenn die Maus das Element betritt und neu bindet, wenn ich gehe (gemeint für einige Berührungsereignisse und was nicht Now)
binde ich wie dieses
$("table").on("touchstart mousedown",".shift", function(e){ ... })
Aber wenn ich versuche, auf ein bestimmtes Element zu lösen, sagen, es ist eine Klasse hat = "selected" hinzugefügt, um das aktuelle Element zu unterscheiden i verwenden:
$("table").off("touchstart mousedown",".shift.selected")
was nicht funktioniert ....
Ich kann alle Handler auf einmal entfernen, aber es wäre verschwenderisch, alle Handler zu entfernen und sie wieder einzufügen, sobald die Maus geht.
Gibt es also eine Möglichkeit, den Handler für ein einzelnes Element zu entfernen, nachdem das Ereignis an alle aktuellen und zukünftigen Elemente gebunden ist?
Vielen Dank im Voraus!
Kann $ '(" table ") nicht verwenden on (" touchstart mousedown ",". Shift: nicht (.selected) ", function (e) {...})'? –
Sie können die Bindung nicht allein von '.shift.selected' lösen, da nichts wirklich an ein' .shift' Element gebunden ist. Es gibt nur einen Handler gebunden, und zwar 'table', und er hat eine Anweisung, den Handler auszulösen, wenn das Ereignis auf' .shift' stattfindet, so dass die Aufhebung von '.shift.selected' keine Auswirkungen hat, da Sie sie nicht benutzt haben dieser Selektor. –
Leider wird die .selected Klasse nur hinzugefügt, wenn die Maus das Element betritt. Das Element ist nicht diese Klasse, wenn das Ereignis gebunden ist Ich dachte nicht, dass es auch möglich war, aber ich musste fragen, nur für den Fall, dass jemand einen Weg gefunden hatte, ein einzelnes Element zu lösen –