我知道
jquery .on()的使用和目的,因为我使用它.
但是我想知道这个脚本中$(document).on()vs $(element).on()之间的区别是什么:
<html> ... <body> ... <table id="table-user"> <thead>...</thead> <tbody> AJAX DINAMYC CONTENT </tbody> </table> .... <script> $(document).on('click','.btn-edit',function(){ go_edit(); }); $('#table-user').on('click',function(){ go_edit(); }); </script> </body> </html>
是什么表现不同或他们之间的其他东西?
解决方法
@Mukesh已经回答了主要的区别.
我会尝试添加一件事.
我会尝试添加一件事.
当您在html文档中的元素(如div或按钮)上单击(或任何其他事件)时,该单击事件将传播到该元素的父元素.所以如果你有这样的结构:
<div> <table> <tr> <td> <button>Click Me</button> </td> </tr> </table> </dvi>
然后单击按钮,该单击将传播到td,然后传播到tr,然后传递到表,最后传播到文档本身.
现在假设您已经在文档上注册了一个click事件($document.on(‘click’,…))以及按钮($(button.on(‘click’,…))),两者都做了一些不同的动作.然后,如果单击该按钮,将执行相应的按钮操作,并且还将执行$(文档)的相应操作.
要防止按钮单击传播到文档本身,您需要对按钮单击处理程序执行操作(如stopPropagation等)