0

这是jquery

$( document ).ready(function() {

    $( "a" ).click(function( event ) {

        alert( "Hi!" );

        event.preventDefault();

    });

});

在函数event中是一个参数,我们可以用它来替换它,whatever我们可以这样做,whatever.preventDefault()但我想知道不插入任何参数,比如function()我们只能这样.preventDefault();做吗?

4

5 回答 5

1

不,如果您不为函数指定参数,您的代码将无法工作,因为方法不能应用于任何内容。

于 2013-07-19T09:20:50.570 回答
1

不,preventDefault() 函数与事件相关联。

所以你应该有

$(document).ready(function () {
    $("a").click(function (event) {            
        event.preventDefault();
    });
});

或者

您可以使用return false

$(document).ready(function () {
        $("a").click(function () {            
            return false;
        });
    });

return false从 jQuery 事件处理程序中调用两者实际上与e.preventDefault在传递的jQuery.Event对象上调用两者相同。

检查这个 SO答案

于 2013-07-19T09:21:34.473 回答
0

您可以将事件捕获到,对委托事件很有用:

var eventToPrevent = "click",
    selectorToPrevent = "a";

document.addEventListener(eventToPrevent, function (e) {
    if ($(e.target).is(selectorToPrevent)) e.preventDefault();
}, true);

演示

于 2013-07-19T10:15:11.960 回答
0

是的,你可以这么做。见下面的代码:

 $( "a" ).click(function() {
      alert( "Hi!" );
 }).preventDefault(); //add .preventDefault() here
于 2013-07-19T09:22:46.050 回答
0

您的事件参数实际上是 jQuery事件数据对象。它表示事件的状态及其控制点。

如果你没有这个,你就无法控制你想要什么。

于 2013-07-19T09:23:35.887 回答