使用preventDefault

时间:2014-03-27 06:43:12

标签: javascript jquery syntax standards preventdefault

我一直在查看某人发布的一些代码,但我无法理解他使用preventDefault的原因。

var $windows = $('#tgx-window,#tgs-window,#tgm-window,#tgl-window'), $buttons = $('#tgx-button,#tgs-button,#tgm-button,#tgl-button');
$windows.hide();

$buttons.on('click', function(e) {
    var $id;
    e.preventDefault();
    $buttons.removeClass('closebutton');
    $id = $('#' + this.id.split('-')[0] + '-window');// Get window id
    $windows.slideUp();
    if(! $id.is(':visible') ) {
        $id.slideDown();
        $(this).addClass('closebutton');
    }
});

无论有没有,它似乎表现完全相同。到目前为止,我最好的猜测是在函数体中使用preventDefault / return false是常见的做法。

我的问题是他为什么要使用这种方法?

哦,是的。我是JavaScript的新手。

http://jsfiddle.net/62NPt/53/

2 个答案:

答案 0 :(得分:2)

来自 docs:

  

如果调用此方法,则事件的默认操作不会   触发。

因此,如果您的按钮是输入提交按钮,则event.preventDefault()将阻止按钮的默认行为,并阻止您的表单提交和重新加载页面。当您想要应用 AJAX 来电时,这通常很有用。

答案 1 :(得分:2)

如果按钮的类型为submit,如果您使用anchor则为preventDefault(),则不会触发该事件的默认操作。

如果您不想停止元素的默认操作,那么它没有任何区别。