Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 避免重复jquery事件绑定_Javascript_Ruby On Rails_Jquery - Fatal编程技术网

Javascript 避免重复jquery事件绑定

Javascript 避免重复jquery事件绑定,javascript,ruby-on-rails,jquery,Javascript,Ruby On Rails,Jquery,我遇到了这样一种情况:一些页面内容在ajax中部分加载,并添加了一个编译的js,包括jquery_ujs,然后它会重复所有ujs事件,例如,当您单击delete时,您会得到确认,它会重复 因此,我想知道如何避免通过任何技巧重复事件绑定,并且不确保js通常不会重新加载。或者ujs中是否有任何标志或控件,但我没有发现,我们可以实现这一点,所以可以随时重新加载ujs,但只获得一次事件绑定 嗯…为什么事件绑定不是幂等的呢 除了隔离这些js文件并确保它们只加载一次之外,还有什么解决方案吗 顺便问一下,有没

我遇到了这样一种情况:一些页面内容在ajax中部分加载,并添加了一个编译的js,包括jquery_ujs,然后它会重复所有ujs事件,例如,当您单击delete时,您会得到确认,它会重复

因此,我想知道如何避免通过任何技巧重复事件绑定,并且不确保js通常不会重新加载。或者ujs中是否有任何标志或控件,但我没有发现,我们可以实现这一点,所以可以随时重新加载ujs,但只获得一次事件绑定

嗯…为什么事件绑定不是幂等的呢

除了隔离这些js文件并确保它们只加载一次之外,还有什么解决方案吗

顺便问一下,有没有什么工具可以检测到这种重复绑定?

类似的东西

$(selector).on('click',function(){
  //do stuff here
  $(this).off('click');
});
或者您可以使用类似以下内容:

var clicked = false;
$(selector).on('click',function(){
  if(!clicked){
  clicked = true;
  //do stuff here

  .....somefunc(){
  clicked = false;
  }
  ...
  }
});
像这样的

$(selector).on('click',function(){
  //do stuff here
  $(this).off('click');
});
或者您可以使用类似以下内容:

var clicked = false;
$(selector).on('click',function(){
  if(!clicked){
  clicked = true;
  //do stuff here

  .....somefunc(){
  clicked = false;
  }
  ...
  }
});
像这样的

$(selector).on('click',function(){
  //do stuff here
  $(this).off('click');
});
或者您可以使用类似以下内容:

var clicked = false;
$(selector).on('click',function(){
  if(!clicked){
  clicked = true;
  //do stuff here

  .....somefunc(){
  clicked = false;
  }
  ...
  }
});
像这样的

$(selector).on('click',function(){
  //do stuff here
  $(this).off('click');
});
或者您可以使用类似以下内容:

var clicked = false;
$(selector).on('click',function(){
  if(!clicked){
  clicked = true;
  //do stuff here

  .....somefunc(){
  clicked = false;
  }
  ...
  }
});

虽然您应该使用更干净的方法,但有时当您在处理其他人的代码时,需要快速修复以确保事件不会设置多次(使用模糊的代码),那么我已经这样做了:

$(someSelector).off('click').on('click', function(event)
{
    // whatever
});

虽然您应该使用更干净的方法,但有时当您在处理其他人的代码时,需要快速修复以确保事件不会设置多次(使用模糊的代码),那么我已经这样做了:

$(someSelector).off('click').on('click', function(event)
{
    // whatever
});

虽然您应该使用更干净的方法,但有时当您在处理其他人的代码时,需要快速修复以确保事件不会设置多次(使用模糊的代码),那么我已经这样做了:

$(someSelector).off('click').on('click', function(event)
{
    // whatever
});

虽然您应该使用更干净的方法,但有时当您在处理其他人的代码时,需要快速修复以确保事件不会设置多次(使用模糊的代码),那么我已经这样做了:

$(someSelector).off('click').on('click', function(event)
{
    // whatever
});

Javascript中有一种称为自定义函数的东西。当函数有一些初始准备工作要做并且只需要做一次时,此模式非常有用。在这种情况下,自定义函数可以更新自己的实现

例如

var shout= function(){
    alert('shout!');
    shout= function(){
          alert('shout again');
   }
}

//using self-defining function
shout(); // shout!
shout(); // shout again!

希望这对您有用。

Javascript中有一种称为自定义函数的东西。当函数有一些初始准备工作要做并且只需要做一次时,此模式非常有用。在这种情况下,自定义函数可以更新自己的实现

例如

var shout= function(){
    alert('shout!');
    shout= function(){
          alert('shout again');
   }
}

//using self-defining function
shout(); // shout!
shout(); // shout again!

希望这对您有用。

Javascript中有一种称为自定义函数的东西。当函数有一些初始准备工作要做并且只需要做一次时,此模式非常有用。在这种情况下,自定义函数可以更新自己的实现

例如

var shout= function(){
    alert('shout!');
    shout= function(){
          alert('shout again');
   }
}

//using self-defining function
shout(); // shout!
shout(); // shout again!

希望这对您有用。

Javascript中有一种称为自定义函数的东西。当函数有一些初始准备工作要做并且只需要做一次时,此模式非常有用。在这种情况下,自定义函数可以更新自己的实现

例如

var shout= function(){
    alert('shout!');
    shout= function(){
          alert('shout again');
   }
}

//using self-defining function
shout(); // shout!
shout(); // shout again!

希望这对你们有用。

若你们在房子里发现垃圾,你们会清理还是装饰它


你有责任确保没有不必要的js加载。就这么简单。

若你们在房子里发现垃圾,你们会清理还是装饰它


你有责任确保没有不必要的js加载。就这么简单。

若你们在房子里发现垃圾,你们会清理还是装饰它


你有责任确保没有不必要的js加载。就这么简单。

若你们在房子里发现垃圾,你们会清理还是装饰它


你有责任确保没有不必要的js加载。就这么简单。

如果已经在选择器上设置了一个单击事件,那么是否会添加另一个,这样两个事件都会被触发,那么关闭事件将永久性地清除这两个事件,而不是只保留一个边界?正如OP所说:当您单击“删除”时,您会得到确认,它会重复。是的,这就是我想表达的观点。我认为,如果说原始事件先触发,那么原始事件和新事件都可能触发。(OP试图避免的)然后在新事件的最后一行,两个事件都被禁用,而不是只启用一个。抱歉,如果我在最初的评论中不清楚。如果已经在选择器上设置了一个单击事件,是否会添加另一个,这样两个事件都可能被触发,那么关闭事件将永久性地清除这两个事件,而不是离开一个边界?正如OP所说:当您单击“删除”时,您会得到确认,它会重复。是的,这就是我想表达的观点。我认为,如果说原始事件先触发,那么原始事件和新事件都可能触发。(OP试图避免的)然后在新事件的最后一行,两个事件都被禁用,而不是只启用一个。抱歉,如果我在最初的评论中不清楚。如果已经在选择器上设置了一个单击事件,是否会添加另一个,这样两个事件都可能被触发,那么关闭事件将永久性地清除这两个事件,而不是离开一个边界?正如OP所说:当您单击“删除”时,您会得到确认,它会重复。是的,这就是我想表达的观点。我认为,如果说原始事件先触发,那么原始事件和新事件都可能触发。(OP试图避免的)然后在新事件的最后一行,两个事件都被禁用,而不是只启用一个。抱歉,如果我在最初的评论中不清楚。如果已经在选择器上设置了一个click事件,那么是否会添加另一个,这样两个事件都可能被触发,那么off事件将永久性地清除这两个事件,而不是离开一个边界?正如OP所说:当您单击时