此代码(取自this post)阻止我在尝试使用Error: 'null' is null or not an object
preventDefault()
)
$(document).ready(function () {
$("#submitBtn").on("click", pD(event));
});
function pD(e) {
e = event || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
似乎有效。然而,this post中的评论(第四次评论)让我担心这可能是一种不好的方法。它在某种程度上是可接受的还是不可接受的?评论的语言非常强烈,所以这让我很好奇。
答案 0 :(得分:10)
首先,您分配点击处理程序的方式不正确:
$("#submitBtn").on("click", pD(event));
您正在调用 pD()
函数并将其返回值传递给.on()
方法。您只需要传递对函数的引用:
$("#submitBtn").on("click", pD);
其次,您正在使用jQuery,因此您不需要测试e
参数并将其设置为window.event
,因为jQuery会为您处理这些兼容性问题。你可以使用e.preventDefault()
知道jQuery会让它成为现实。