簡體   English   中英

jQuery的.hover()僅可運行一次

[英].hover() with jQuery works only one time

我的內容框已禁用,我嘗試使用.hover()啟用它,但是問題是.hover()僅在第一個懸停時起作用,而不是每次都起作用; 內容框類為.dboxcontent

$('div.conbox').hover(function () {
    var activeID = $(this).attr('id');
    $('#' + activeID + ' .dboxcontent').show();
}, function () {
    var activeID = $(this).attr('id');
    $('#' + activeID + ' .dboxcontent').remove();
});

jsfiddle示例

使用.hide()代替.remove()
否則,您將刪除該懸停元素內具有類.dboxcontent的DOM元素。

像這樣:

$('div.conbox').hover(function () {
    $(this).find('.dboxcontent').show();
}, function () {
    $(this).find('.dboxcontent').hide();
});

小提琴

實際上,您不需要jQuery,只是CSS是最好的解決方案。

.conbox:hover .dboxcontent {
    display: block;
}

這里只是CSS

您需要.hide()方法: http : //jsfiddle.net/qVuhh/10/

如果使用remove()方法,則標記將被刪除。

當您執行.remove()時,實際上是從DOM中刪除HTML元素。

您應該將其隱藏。

我會這樣重寫您的js:

                 $('div.conbox').hover(
                     function() {
                         $(this).find('.dboxcontent').show();
                     }, function() {
                         $(this).find('.dboxcontent').hide();
                     }
                 );

您不需要在那里的字符串連接。 您可以改用.find()。

http://jsfiddle.net/qVuhh/9/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM