2010-09-20 6 views
0

Мне нужно, чтобы этот код работал, поэтому, когда элемент щелкнул мышью, мышь не исчезнет из элемента.Комбинация Click with hover

$('.link1').hover(function(){ 
    $('#image1').fadeIn(); 
},function(){ 
    $('#image1').fadeOut(); 
}).click(function(){ 
    $('#image1').css('display','block'); 
}); 

Заранее спасибо.

ответ

3
$('.link1').hover(function(){ 
    $('#image1').fadeIn(); 
},function(){ 
    var clicked = $(this).data('clicked'); 
    if(!clicked) $('#image1').fadeOut(); 
}).click(function(){ 
    $(this).data('clicked', true); 
    $('#image1').css('display','block'); 
}); 
+0

мне теперь нужно динамически добавлять идентификатор изображения, и это doens't похоже на работу. Я просто попытался заставить первую часть работать. $ ('# image-map area'). hover (function() { var linkClass = $ (this) .attr ("class"); var linkClassID = '#' + linkClass; linkClassID.stop (true , true) .fadeIn(); }, function() { var clicked = $ (this) .data ('clicked'); if (! clicked) $ ('# image1'). stop (true, true) .fadeOut(); }). click (function() { $ (this) .data ('clicked', true); $ ('# image1'). css ('display', 'block'). $ ('# image1'). Siblings ('display', 'none'); }); – 2010-09-20 11:41:00

+0

@ Клинт - это немного сложно читать. Возможно, это заслуживает отдельного вопроса? – sje397

0

Добавьте атрибут, чтобы его можно было проверить.

$('.link1').hover(function(){ 
    if(!$('#image1').is(':visible')) $('#image1').fadeIn(); 
}, function(){ 
    if(!$(this).attr("clicked")) $('#image1').fadeOut(); 
}).click(function(){ 
    $(this).attr("clicked", true); 
    $('#image1').css('display','block'); 
});