Нет, то, что вы ищете, невозможно. Не существует абстракции «задача», которая явно скрывает что-либо, и вы не можете прерывать произвольные функции. Они должны явно отказаться от отмены (например, проверив breakpoint
, который им передан, как в ответе Джонаса). Вы можете сделать это, используя дочерний процесс, который вы можете убить, но это может оставить несовместимое состояние.
Вы бы использовали off () , чтобы удалить событие следующим образом:
$("#saveBtn").off("click");
, но это удалит все события щелчка , связанные с этим элементом. Если функция с SaveQuestion является единственным привязанным событием, то вышеописанное сделает это. Если нет, сделайте следующее:
$("#saveBtn").off("click").click(function() { saveQuestion(id); });
Есть ли способ удалить все предыдущие события нажатия, которые были назначены кнопке?
$('#saveBtn').unbind('click').click(function(){saveQuestion(id)});
Если вы использовали ...
$(function(){
function myFunc() {
// ... do something ...
};
$('#saveBtn').click(myFunc);
});
... тогда вам будет легче отменить привязку позже.