在jQuery上,仅添加一个事件侦听器

在jQuery上,仅添加一个事件侦听器,jquery,Jquery,我有一个ul的事件侦听器: $('body').on('click.submenu', '.top-level', subMenu); 有没有办法确保只添加一次 原因是,我只需要在视口处于“移动”断点时添加它,并且当它从桌面返回到移动时,似乎有多个事件侦听器。我唯一能想到的是在添加侦听器之前对其调用关闭 $('body').off('click.submenu', '.top-level', subMenu); $('body').on('click.submenu', '.top-level

我有一个ul的事件侦听器:

$('body').on('click.submenu', '.top-level', subMenu);
有没有办法确保只添加一次


原因是,我只需要在视口处于“移动”断点时添加它,并且当它从桌面返回到移动时,似乎有多个事件侦听器。

我唯一能想到的是在添加侦听器之前对其调用
关闭

$('body').off('click.submenu', '.top-level', subMenu);
$('body').on('click.submenu', '.top-level', subMenu);

我能想到的唯一一件事是在添加侦听器之前,先对其调用
off

$('body').off('click.submenu', '.top-level', subMenu);
$('body').on('click.submenu', '.top-level', subMenu);

我能想到的唯一一件事是在添加侦听器之前,先对其调用
off

$('body').off('click.submenu', '.top-level', subMenu);
$('body').on('click.submenu', '.top-level', subMenu);

我能想到的唯一一件事是在添加侦听器之前,先对其调用
off

$('body').off('click.submenu', '.top-level', subMenu);
$('body').on('click.submenu', '.top-level', subMenu);