用于定义事件委托者的正确语法

fri*_*ton 0 javascript jquery event-delegation

通常,您为按钮单击编写处理程序,如下所示:

$(document).ready(function()
{

  $("button").click(function()
  {    
    doSomething();
  });
});
Run Code Online (Sandbox Code Playgroud)

但是在事件委托者的情况下,用这样的函数响应事件:

  function doSomething(event)
  {
    if (ev.target.id == 'button1' )
    {
       //do your stuff
       console.log('#button1 click');
    }
    else
    {
       console.log('not a #button1 click');
    }
  }
Run Code Online (Sandbox Code Playgroud)

我困惑的是用于定义调用此委托函数的事件的正确语法 - 这个?(一个):

$(document).ready(function()
{
  $(function()
  {
    $('button').click(doSomething);
  });
});
Run Code Online (Sandbox Code Playgroud)

或这个?(B):

$(document).ready(function()
{
  $("button").click(doSomething);
});
Run Code Online (Sandbox Code Playgroud)

哪个是正确的,为什么?

Jon*_*son 5

在选择A中,您只需重复document.ready语法两次.

// These two lines are equal
$(document).ready(fn);
$(fn);
Run Code Online (Sandbox Code Playgroud)

您需要做的就是选择B.