Как проверить наличие обработчика события на элементе?
В общем такая задача:
var $body=$("body"); $body.on("keydown",move); // установил обработчик. // потом бла-бла-бла в коде где может выключиться обработчик через $body.off(...) Вопрос: Как проверить наличие обработчика в $body? Благодарствую) |
|
yazonnile,
спасибо!!! |
Функция проверки наличия обработчика события на элементе
RioEiner,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"></style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script> $(function() { var $body = $("body"); $body.on("keydown", move); function move() { alert("test") } function test(elem, event, fun) { var events = $._data(elem, "events"); return !!events && !!(events = events[event]) && (!fun || events.some(function(data) { return data.handler == fun })) } alert(test($body[0],"click"));//false кликов нет alert(test($body[0],"keydown"));//true есть keydown alert(test($body[0],"keydown", move)); //true есть keydown и в keydown есть функция move alert(test($body[0],"keydown", test)); //false есть keydown но в keydown нет функция test $body.off(); alert(test($body[0],"keydown", move));//false нет keydown или в keydown нет функция move $body.on("keydown", move); alert(test($body[0],"keydown", move)); //true есть keydown и в keydown есть функция move }); </script> </head> <body> </body> </html> |
Часовой пояс GMT +3, время: 20:18. |