2011-09-11 10 views
3

)私はclickイベントを実際の要素に近い要素、たとえばtableボタンのある要素に委譲した場合、これはしばらくの間、$("body").delegate(".selector", "click", function() { ... });を使用していました。同じイベントをbodyに委任するよりも速くなります。なぜなら、イベントはあまりにもバブルする必要がないからです。デリゲートのパフォーマンス(

基本的なHTMLの例:bodyを使用して

<html> 
    <body> 
     <table> 
      <tr> 
       <td> 
        <input type="button" value="Delegated element"> 
       </td> 
      </tr> 
      <!-- More, identical rows --> 
     </table> 
    </body> 
</html> 

まずたとえば、:

$('body').delegate('input[type="button"]', 'click', function() { 
    // Do things 
}); 

第二の例、tableを使用して:上記速くなる二つの例の

$('table').delegate('input[type="button"]', 'click', function() { 
    // Do things 
}); 

、一方が他方よりも速い場合は、なぜ

答えて

5

クリックイベントを実際の要素に近い要素(たとえばボタンがいっぱいの表)に委譲すると、同じイベントをボディに委譲するよりも速くなります遠くまで泡立てる?

はい、それはあなたが提案する理由よりも速く正確です。私はthisが役に立つ記事であり、あなたの質問にかなり関連していると思います。

+0

ありがとうございました。私は事がこれのように動作すると思ったが、私は正直かどうかについて興味があった。また、幸せな1K担当者:-) – Bojangles