.hover()与jQuery只工作一次

时间:2013-10-21 21:37:45

标签: javascript jquery html

我的内容框已停用,我尝试使用.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 example

3 个答案:

答案 0 :(得分:5)

使用.hide()代替.remove()
否则你要删除那个悬停元素中的类.dboxcontent的DOM元素。

像这样:

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

Fiddle

实际上你不需要jQuery,只有CSS才是最好的解决方案。

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

只是CSS here

答案 1 :(得分:1)

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

如果您使用remove()方法,则会删除该标记。

答案 2 :(得分:1)

当您执行.remove()时,实际上是从DOM中删除HTML元素。

你应该隐藏它。

我会这样重写你的js:

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

您不需要字符串连接。您可以使用.find()代替。

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