Javascript 关于jquerybind()的问题

Javascript 关于jquerybind()的问题,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我有一个关于jQuery bind工作的问题。每当我们在任何元素上使用bind方法并编写一些回调代码时,是“每次”在bind事件上执行完整的代码,还是jQuery只记住该代码的输出/结果并只执行该结果 我们还可以在回调代码中生成另一个事件吗 就像它是如何工作的。您可以使用.trigger()轻松生成另一个事件 编辑: 在反复阅读你的第一个问题之后。我相信您正在寻找的答案是每次执行bind()。但是,在回调代码更改DOM的情况下,可以添加一个元素,而该元素上的事件不会被绑定 考虑添加按钮的代码,您

我有一个关于jQuery bind工作的问题。每当我们在任何元素上使用bind方法并编写一些回调代码时,是“每次”在bind事件上执行完整的代码,还是jQuery只记住该代码的输出/结果并只执行该结果

我们还可以在回调代码中生成另一个事件吗


就像它是如何工作的。

您可以使用.trigger()轻松生成另一个事件

编辑: 在反复阅读你的第一个问题之后。我相信您正在寻找的答案是每次执行bind()。但是,在回调代码更改DOM的情况下,可以添加一个元素,而该元素上的事件不会被绑定


考虑添加按钮的代码,您可以使用.trigger()轻松生成另一个事件

编辑: 在反复阅读你的第一个问题之后。我相信您正在寻找的答案是每次执行bind()。但是,在回调代码更改DOM的情况下,可以添加一个元素,而该元素上的事件不会被绑定


考虑添加按钮的代码
回调函数在每个事件上从头开始计算
在这里:

您可以看到,每次单击都会生成不同的结果


是的,您可以很容易地在回调中生成另一个事件

回调函数对每个事件从头开始计算 在这里:

您可以看到,每次单击都会生成不同的结果

是的,您可以轻松地在回调中生成另一个事件

每次触发事件时,都会执行与指定目标上的事件绑定的所有函数。这些回调函数的返回值用于确定事件是否应继续传播

作为脚本一部分调用的函数与事件回调函数之间存在一些显著差异:

  • jQuery规范化回调,使其在绑定目标的上下文中执行(即,
    引用事件分配给的绑定元素)
  • 回调参数是自动提供的
  • 触发事件时,事件异步执行,因此可能会出现一些变量值的意外结果(调用回调时,
    i
    等循环索引可能会有其最终值)
  • 由于回调只是函数,所以它们可以做任何其他函数可以做的事情,包括调用
    触发器
    。一定要小心,不要使自己成为一个无限循环,对同一事件进行递归函数调用

    您不想打电话:

    function foo()
    {
      foo();
    }
    
    $('#foo').click(function(){
      //short form for .trigger('click')
      $(this).click();
    });
    
    同样,您也不想打电话:

    function foo()
    {
      foo();
    }
    
    $('#foo').click(function(){
      //short form for .trigger('click')
      $(this).click();
    });
    
    每次触发事件时,都会执行与指定目标上的事件绑定的所有函数。这些回调函数的返回值用于确定事件是否应继续传播

    作为脚本一部分调用的函数与事件回调函数之间存在一些显著差异:

  • jQuery规范化回调,使其在绑定目标的上下文中执行(即,
    引用事件分配给的绑定元素)
  • 回调参数是自动提供的
  • 触发事件时,事件异步执行,因此可能会出现一些变量值的意外结果(调用回调时,
    i
    等循环索引可能会有其最终值)
  • 由于回调只是函数,所以它们可以做任何其他函数可以做的事情,包括调用
    触发器
    。一定要小心,不要使自己成为一个无限循环,对同一事件进行递归函数调用

    您不想打电话:

    function foo()
    {
      foo();
    }
    
    $('#foo').click(function(){
      //short form for .trigger('click')
      $(this).click();
    });
    
    同样,您也不想打电话:

    function foo()
    {
      foo();
    }
    
    $('#foo').click(function(){
      //short form for .trigger('click')
      $(this).click();
    });
    

    我不清楚你的要求与宾得有什么关系我不清楚你的要求与宾得有什么关系见我的答案。bind()不适用于以后添加到DOM中的元素。因此,如果回调将元素添加到DOM中,它还必须执行bind()或.live()/.delegate()操作。必须提前使用。请参阅我的答案。bind()不适用于以后添加到DOM中的元素。因此,如果回调将元素添加到DOM中,它还必须执行bind()或.live()/.delegate()操作,否则必须提前使用。