Я не могу отключить мой контент, я пытаюсь включить его с помощью .hover()
, но проблема в том, что .hover()
работает только при первом зависании не каждый раз; класс содержимого содержимого .dboxcontent
:
$('div.conbox').hover(function () {
var activeID = $(this).attr('id');
$('#' + activeID + ' .dboxcontent').show();
}, function () {
var activeID = $(this).attr('id');
$('#' + activeID + ' .dboxcontent').remove();
});
Используйте .hide()
вместо .remove()
,
в противном случае вы .dboxcontent
элемент DOM с классом .dboxcontent
внутри этого .dboxcontent
элемента.
Как это:
$('div.conbox').hover(function () {
$(this).find('.dboxcontent').show();
}, function () {
$(this).find('.dboxcontent').hide();
});
На самом деле вам не нужен jQuery для этого, просто CSS является лучшим решением здесь.
.conbox:hover .dboxcontent {
display: block;
}
Когда вы делаете.remove(), вы фактически удаляете HTML-элемент из DOM.
Вместо этого вы должны скрыть это.
Я бы переписал ваши js таким образом:
$('div.conbox').hover(
function() {
$(this).find('.dboxcontent').show();
}, function() {
$(this).find('.dboxcontent').hide();
}
);
Вам не нужна конкатенация строк. Вместо этого вы можете использовать.find().
Вам нужен .hide()
: http://jsfiddle.net/qVuhh/10/
Если вы используете метод remove()
, тег будет удален.