こんにちは、私は画面の側面を隠すナビゲーションメニューを持っています。残念ながら、アンカーリンクをクリックすることはできません(代わりにトグルします。デフォルトを防ぐオーバーライドして、リンクがnav
要素の内側にあると仮定すると、その要素に設定されたアニメーションをトリガーする?Jquery toggle override preventdefault
$('a', 'nav').on('click', function(e) {
e.stopPropagation();
});
?
var one = {queue:true, duration:1250, easing: 'easeInOutExpo'};
var two = {queue:true, duration:1500, easing: 'easeInOutExpo'};
$('nav').toggle(
function() { showMenu() },
function() { hideMenu() });
$(window).bind('load', function() {
setTimeout ('hideMenu()', 1000);
});
function hideMenu()
{
$('nav').animate({ left: '-=270' }, one);
$('#container').animate({ left: '-=270' }, two);
}
function showMenu()
{
$('nav').animate({ left: '+=270' }, one);
$('#container').animate({ left: '+=270' }, two);
}
はあなたが説明してくださいすることができれば、サイトをスクロールから防ぐことはできませんか? – adeneo
さて、私は間違っていたようです。 jQueryでは 'return false' **は' e.preventDefault() 'と' e.stopPropagation() 'を呼び出すために**等しいです。しかし、バニラJSの場合、 'return false'は' e.preventDefault() 'だけをトリガします。そのため、イベントはまだDOMツリーをバブルアップします。 ソース:http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false – meeDamian