Javascript 如果jquery加载一次,则阻止相同函数的实例
我的网站导航需要转换为垂直导航,因此我测量视口的宽度,并使用Javascript 如果jquery加载一次,则阻止相同函数的实例,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的网站导航需要转换为垂直导航,因此我测量视口的宽度,并使用resize和load函数将其绑定。然后它执行menuConvert()函数。但在调整窗口大小时,它会导致多次执行menuConvert()函数 我的js代码是 $(窗口).bind('load resize',function(){ 宽度=$(窗口).width(); 控制台日志(宽度) 如果(宽度
resize
和load
函数将其绑定。然后它执行menuConvert()
函数。但在调整窗口大小时,它会导致多次执行menuConvert()
函数
我的js代码是
$(窗口).bind('load resize',function(){
宽度=$(窗口).width();
控制台日志(宽度)
如果(宽度<800){
menuConverter();//这是函数
}
});
如果函数一次执行,我想阻止它的执行。有人能帮我解除绑定事件吗
$(window).bind('load resize', function(){
width = $(window).width();
console.log(width)
if(width < 800){
menuConverter(); // This is the function
//Unbind
$(window).unbind('load resize')
}
});
$(窗口).bind('load resize',function(){
宽度=$(窗口).width();
控制台日志(宽度)
如果(宽度<800){
menuConverter();//这是函数
//解开
$(窗口)。取消绑定('加载调整大小')
}
});
我建议分别使用和替换.bind()
和.unbind()
。您可以解除事件绑定
$(window).bind('load resize', function(){
width = $(window).width();
console.log(width)
if(width < 800){
menuConverter(); // This is the function
//Unbind
$(window).unbind('load resize')
}
});
$(窗口).bind('load resize',function(){
宽度=$(窗口).width();
控制台日志(宽度)
如果(宽度<800){
menuConverter();//这是函数
//解开
$(窗口)。取消绑定('加载调整大小')
}
});
我建议分别使用和替换
.bind()
和.unbind()
。您可以执行以下操作
var flag800;
$(window).bind('load resize', function () {
if (width < 800) {
if (flag800 !== true) {
menuConverter(); // This is the function
flag800 = true;
}
} else {
flag800 = false;
}
});
var-flag800;
$(窗口).bind('load resize',函数(){
如果(宽度<800){
如果(flag800!==真){
menuConverter();//这是函数
flag800=真;
}
}否则{
flag800=假;
}
});
演示:您可以执行以下操作
var flag800;
$(window).bind('load resize', function () {
if (width < 800) {
if (flag800 !== true) {
menuConverter(); // This is the function
flag800 = true;
}
} else {
flag800 = false;
}
});
var-flag800;
$(窗口).bind('load resize',函数(){
如果(宽度<800){
如果(flag800!==真){
menuConverter();//这是函数
flag800=真;
}
}否则{
flag800=假;
}
});
演示:使用一个简单的bool变量
var menexe = false;
$(window).bind('load resize', function(){
width = $(window).width();
console.log(width)
if(width < 800){
if(menexe === false){
menuConverter(); // This is the function
menexe = true;
}
}
});
var menexe=false;
$(窗口).bind('load resize',function(){
宽度=$(窗口).width();
控制台日志(宽度)
如果(宽度<800){
如果(menexe==false){
menuConverter();//这是函数
menexe=true;
}
}
});
使用一个简单的布尔变量
var menexe = false;
$(window).bind('load resize', function(){
width = $(window).width();
console.log(width)
if(width < 800){
if(menexe === false){
menuConverter(); // This is the function
menexe = true;
}
}
});
var menexe=false;
$(窗口).bind('load resize',function(){
宽度=$(窗口).width();
控制台日志(宽度)
如果(宽度<800){
如果(menexe==false){
menuConverter();//这是函数
menexe=true;
}
}
});
如果将宽度扩展到800以上,然后返回到较小的窗口,则此操作无效。如果要转换/取消转换,则会出现问题。但是,现在没有uncert函数,所以这可能不是问题?@Satpal这很好,但是如果我将窗口调整到以前的大屏幕?它不像以前那样before@SumaiyaSalam,menuConverter()到底做了什么?@Satpal它实际上将水平菜单变成了垂直菜单,并添加了一些标记。只不过that@SumaiyaSalam,那么重新执行menuConverter()
将解决问题吗?右侧如果将宽度扩展到800以上,然后返回到较小的窗口,则此操作将不起作用。如果要转换/取消转换,则会出现问题。但是,现在没有uncert函数,所以这可能不是问题?@Satpal这很好,但是如果我将窗口调整到以前的大屏幕?它不像以前那样before@SumaiyaSalam,menuConverter()到底做了什么?@Satpal它实际上将水平菜单变成了垂直菜单,并添加了一些标记。只不过that@SumaiyaSalam,那么重新执行menuConverter()
将解决问题吗?好的,这很好,但是如果我将窗口调整到上一个大屏幕?它不像以前那样before@SumaiyaSalam请参阅-如果您想在每次切换发生时运行menuConverter
,这很好,但是如果我将窗口调整为上一个大屏幕,是否可以?它不像以前那样before@SumaiyaSalam请参阅-如果您想在每次切换发生时运行menuConverter
,这很好,但是如果我将窗口调整为上一个大屏幕,是否可以?它不再像以前那样,您需要添加另一个即使每次调整大小时都会触发的窗口,并再次使menexe=false。这很好,但如果我将窗口调整为以前的大屏幕,您会这样做吗?它不再像以前那样,您需要添加另一个,即使每次调整大小时都会触发,并再次使menexe=false。