在身体或文件上绑定事件?

Lor*_*ard 15 javascript jquery javascript-events

有时用户会绑定事件$('body'),有时也会打开事件$(document)

$(document).on('click', someAction);

$('body').on('click', someAction);
Run Code Online (Sandbox Code Playgroud)

有什么理由喜欢彼此吗?

ant*_*njs 7

对我来说,主要有一个理由来绑定事件$(document)而不是$('body'):

无需等待domReady(文档在其他所有内容之前可用)


jAn*_*ndy 6

简短的回答很可能是,不,不是真的.

有人这样做的原因应该是他需要在他的标记中全局捕捉事件.由于<body>标签应该像直接兄弟一样<html>,所有冒泡阶段的事件都将在那里结束.

<html>
    <body>
         <div>
         </div>
Run Code Online (Sandbox Code Playgroud)

在每次点击事件<div>会冒泡到<body>以及<html>(如果不手动停止).所以对于那个用例,它应该没有任何区别.