Javascript 如何检查某件事是否已完成,如果存在,则不要再次执行
我想这样做,当打开Javascript 如何检查某件事是否已完成,如果存在,则不要再次执行,javascript,jquery,Javascript,Jquery,我想这样做,当打开.content,然后创建一个新的,并附加到.mainPage,但只想附加一次 这是样品 var$newDiv=‘This’; $('.content')。在('mouseover',function()上{ $($newDiv).appendTo('.mainPage'); }); 我知道我可以使用one来实现这一点,但我想知道是否有办法使用“on”来实现相同的目标,如果已经采取了行动,只需附加一次:-) 谢谢您可以使用标志变量来记住添加的元素 var $newDiv
.content
,然后创建一个新的,并附加到.mainPage
,但只想附加一次
这是样品
var$newDiv=‘This’;
$('.content')。在('mouseover',function()上{
$($newDiv).appendTo('.mainPage');
});
我知道我可以使用one
来实现这一点,但我想知道是否有办法使用“on”来实现相同的目标,如果已经采取了行动,只需附加一次:-)
谢谢您可以使用标志变量
来记住添加的元素
var $newDiv = '<div class="content">This</div>';
alreadyAdded = false;
$('.content').on('mouseover', function(){
if(alreadyAdded) return;
$($newDiv).appendTo('.mainPage');
alreadyAdded = true;
});
var$newDiv='This';
alreadyAdded=假;
$('.content')。在('mouseover',function()上{
如果(已添加)返回;
$($newDiv).appendTo('.mainPage');
alreadyAdded=true;
});
var $newDiv = '<div class="content">This</div>';
alreadyAdded = false;
$('.content').on('mouseover', function(){
if(alreadyAdded) return;
$($newDiv).appendTo('.mainPage');
alreadyAdded = true;
});
在这种情况下,您必须使用one
。但正如你们所要求的,我使用了flag变量
var $newDiv = '<div class="content">This</div>';
var isAppend=false;
$('.content').on('mouseover', function(){
if(!isAppend){
isAppend=true;
$($newDiv).appendTo('.mainPage');
}
});
var$newDiv='This';
var isAppend=假;
$('.content')。在('mouseover',function()上{
如果(!出现){
isAppend=true;
$($newDiv).appendTo('.mainPage');
}
});
您可以使用:
var $newDiv = '<div class="content">This</div>';
$('.content').one('mouseover', function () {
$($newDiv).appendTo('.mainPage');
});
var$newDiv='This';
$('.content').one('mouseover',function(){
$($newDiv).appendTo('.mainPage');
});
只需删除类即可实现
var $newDiv = '<div class="content">This</div>';
alreadyAdded = false;
$('.content').on('mouseover', function(){
if(alreadyAdded) return;
$($newDiv).appendTo('.mainPage');
alreadyAdded = true;
});
var $newDiv = '<div class="content">This</div>';
$('.content').on('mouseover', function(){
$(this).removeClass('content');
$($newDiv).appendTo('.mainPage');
});
var$newDiv='This';
$('.content')。在('mouseover',function()上{
$(this.removeClass('content');
$($newDiv).appendTo('.mainPage');
});
现场演示:如果事件侦听器的唯一目的是添加
代码,请使用off
将其删除,但它与one
相同
$('.content').on('mouseover', function(){
$($newDiv).appendTo('.mainPage');
$(this).off('mouseover');
});
查看我的答案。您只需删除“content”类就可以实现它!您可以使用@Felix回答的“one()”,这样就不需要使用变量来知道操作是否完成。但是你的回答仍然很好。@BhushanKawadkar,OP知道这个问题,他在问题中提到“我知道我可以用一个来实现这个目标”,不用担心,一个()似乎是更好的选择,他可能想知道另一个选择