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