2014-02-09 131 views
1

我有一個動態生成的HTML內容:div與class='dynamicWrap'。我需要處理這個元素鼠標懸停:動態內容mousehover

$(document).on('mouseover', '.dynamicWrap', function() { 
     console.log('test'); 
    }); 

的問題是,我看到的「測試」 200次(我有200點的div dynamicWrap類)。我怎樣才能處理我徘徊的確切div的一個事件?

+0

您需要使用'mouseenter'事件,而不是'mouseover'。它會檢測鼠標何時進入元素(使用mouseleave檢測退出元素時)。 – Codel

+0

如果我對你有幫助,你只是想讓懸停功能只發生一次?在jQuery上有一個函數.http://api.jquery.com/one/如果這不是你的意思,我很抱歉,請你詳細一點。 –

+0

@JoelHernandez是的,我希望懸停功能只發生一次。但'一個'沒有幫助我。我仍然收到200'測試':( – Ockonal

回答

1
$(document).on('DOMNodeInserted', function(e) { 
    if ($(e.target).hasClass('dynamicWrap')) { 
     $(e.target).mouseover(function() { 
      console.log('test'); 
     }); 
    } 
}); 

請注意,在開始動態添加新div之前,需要先運行該命令。

+0

當動態生成'dynamicWrap'時,這不起作用 – Ockonal

+0

看看這個編輯是否適合你 – chiliNUT

+1

主要想法是我應該在插入新div之前執行這個代碼謝謝 – Ockonal

1
$(".dynamicWrap").one('mouseover', function() { 

//Function content here. 
alert("I've been hovered! Only happen once!") 

}); 
1

這將懸停解除綁定鼠標懸停事件:

$(document).on('mouseover', '.dynamicWrap', function() { 
    console.log('test'); 
    $(this).off('mouseover'); 
});