我喜欢这样做,当在.content
上时,然后创建一个新的并附加到.mainPage
,但只想附加一次。
以下是样本 http://jsfiddle.net/4Qs97/
<div class="mainPage">
<div class="content"></div>
</div>
var $newDiv = '<div class="content">This</div>';
$('.content').on('mouseover', function(){
$($newDiv).appendTo('.mainPage');
});
我知道我可以使用one
来实现这一目标,但想知道是否有使用&#34; on&#34;要实现相同的目标,只要在已经采取行动的情况下追加一次: - )
由于
答案 0 :(得分:2)
您可以使用标记 variable
来记住添加的元素。
<强> Live Demo 强>
var $newDiv = '<div class="content">This</div>';
alreadyAdded = false;
$('.content').on('mouseover', function(){
if(alreadyAdded) return;
$($newDiv).appendTo('.mainPage');
alreadyAdded = true;
});
答案 1 :(得分:1)
您可以使用 .one() :
var $newDiv = '<div class="content">This</div>';
$('.content').one('mouseover', function () {
$($newDiv).appendTo('.mainPage');
});
<强> Updated Fiddle 强>
答案 2 :(得分:0)
<强> Demo 强>
在这种情况下,您必须使用一个
。但是你要求我使用了标志变量
var $newDiv = '<div class="content">This</div>';
var isAppend=false;
$('.content').on('mouseover', function(){
if(!isAppend){
isAppend=true;
$($newDiv).appendTo('.mainPage');
}
});
答案 3 :(得分:0)
您只需删除课程即可实现。
var $newDiv = '<div class="content">This</div>';
$('.content').on('mouseover', function(){
$(this).removeClass('content');
$($newDiv).appendTo('.mainPage');
});
答案 4 :(得分:0)
如果事件监听者的唯一目的是append
,请使用off
将其删除,但话会再次与one
$('.content').on('mouseover', function(){
$($newDiv).appendTo('.mainPage');
$(this).off('mouseover');
});