Ich habe zwei separate Animationen, die auf mouseenter
die andere auf click
vorkommt. Das Problem ist, dass wenn sie beide aktiviert sind, es eine jumpy Animation erzeugt.jQuery: Beim Klicken, verhindern mouseenter Ereignis
können Sie sehen, was ich meine hier: JSFiddle
Ist es möglich, die mouseenter
Ereignis zu verhindern, auftreten, wenn das click
Ereignis aktiviert ist?
Javascript
$('header h1').mouseenter(function() {
$('header:not(.open)').delay(500).animate({
'padding-bottom': '40px'
}, 150, function() {
//function complete
});
});
$('header h1').mouseleave(function() {
$('header:not(.open)').animate({
'padding-bottom': '20px'
}, 150, function() {
//function complete
});
});
$('header h1').click(function() {
if ($('header').hasClass('open')) {
$('header p').fadeOut(100);
$('header').removeClass('open').animate({
'padding-bottom': '20px'
}, 300, function() {
//animation complete
});
}
else {
$('header').addClass('open').animate({
'padding-bottom': '150px'
}, 300, function() {
$('header p').fadeIn();
});
}
});
Warum wollen Sie für eine halbe Sekunde verzögern müssen? – mayhewr
@mayhewr Ich habe die Verzögerung hinzugefügt, um das Problem zu betonen. Aber es existiert immer noch unabhängig davon. – colindunn
Sieht aus wie unbind könnte funktionieren? http://api.jquery.com/unbind/ – colindunn