0

我的内容框已禁用,我尝试使用 启用它.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 示例

4

3 回答 3

5

使用.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

于 2013-10-21T21:39:47.870 回答
1

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

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

于 2013-10-21T21:41:45.150 回答
1

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

你应该隐藏它。

我会这样重写你的js:

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

你不需要在那里进行字符串连接。您可以使用 .find() 代替。

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

于 2013-10-21T21:42:43.290 回答