Метод off
Метод off элементга богланган ҳодиса
ишловчисини олиб ташлаш имконини беради. Ҳодиса ишловчисини
боглаш учун off
методидан фойдаланиш мумкин.
Синтаксис
Биз элементдан ҳодиса ишловчисини шундай ўчирамиз,
биринчи параметр сифатида бitta ё бир нечта ҳодиса
номи пробел билан ажратилган холда сатр кўринишида
берилади, иккинчисида - элемент ичидаги фарзандлар
учун қўшимча фильтрлашув селектори берилади
(у on методига ишловчини боглагандагидек
билан бир хил бўлиши керак). Барча делегацияланган
ҳодисаларни ўчириш учун '**' қийматини беринг.
Иккинчи параметр ихтиёрий. Учинчисида функция-ишловчи
(биз боглаган) берилади, унга ҳодиса объекти ўтказилади
ёки false берилади:
$(селектор).off(ҳодисалар, [селектор], функция-ишловчи(ҳодиса объекти));
off методидан бошқа йўл билан фойдаланиш мумкин,
унда биринчи параметр сифатида JavaScript объекти берилади,
унда калитлар - ҳодиса тури, қийматлар эса - элементга
биз qўшган функция-ишловчилар бўлади:
$(селектор).off({'ҳодиса тури': handler}, [селектор]);
Битта параметрни jQuery.Event объекти кўринишида
ўтказиш мумкин:
$(селектор).off(ҳодиса);
Агар методга ҳеч қандай параметр ўтказилмаса, у ҳолда элементдан богланган барча ишловчилар олиб ташланади:
$(селектор).off();
Мисол
Абзацларга testFunc функция-ишловчисини қўшайлик.
Лекин иккинчи абзацдан ишловчини darhol ўчирамик, шу тариқа
иккинчи абзацни босиш ҳеч нарсага олиб келмайди (агар биз
коднинг охирги қаторини комментарийга олсак, ҳодиса ишлашини
ва иккинчи абзацни босганда ишлашини кузатамиз):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // ишловчини қўшамиз
$('#test2').on('click', {text: 'bbb'}, testFunc); // ишловчини қўшамиз
$('#test2').off('click', testFunc); // ишловчини ўчирамиз