jQuery event.preventDefault() 不工作除非调试
jQuery event.preventDefault() don't work unless debugging
我正在尝试使用 this 方法将 GET 参数转换为 POST。我还希望即使单击鼠标中键也能正确处理锚点。
这就是我绑定事件处理程序的方式:
$(document).ready(function () {
$(".post").each(function(){
$(this).mousedown(function(evt){
switch(evt.which){
case 1:
case 2:
evt.stopPropagation();
evt.preventDefault();
get2post(evt);
break;
}
});
});
});
当我点击 .post
锚点时,浏览器发送 POST 请求,然后立即中止它,转而发送本应阻止的 GET 请求。
(请不要介意处理GET请求时发生的错误。发生这种情况正是因为参数应该通过POST发送,而不是GET)
最后,当我调试 get2post
函数时,它按预期工作。我不知道为什么 evt.preventDefault()
行只在调试时才有效。
我在 Firefox 和 Chrome 上试过,得到了相同的结果。这里发生了什么?为什么 evt.preventDefault()
不工作除非调试?
anchor
、button
或 input
在 mousedown
事件上没有默认行为。您想要阻止 click
事件的默认行为。
$(function () {
$('.post').on('click', function (evt) {
switch (evt.which) {
case 1:
case 2:
evt.stopPropagation();
evt.preventDefault();
get2post(evt);
break;
}
});
});
我正在尝试使用 this 方法将 GET 参数转换为 POST。我还希望即使单击鼠标中键也能正确处理锚点。
这就是我绑定事件处理程序的方式:
$(document).ready(function () {
$(".post").each(function(){
$(this).mousedown(function(evt){
switch(evt.which){
case 1:
case 2:
evt.stopPropagation();
evt.preventDefault();
get2post(evt);
break;
}
});
});
});
当我点击 .post
锚点时,浏览器发送 POST 请求,然后立即中止它,转而发送本应阻止的 GET 请求。
(请不要介意处理GET请求时发生的错误。发生这种情况正是因为参数应该通过POST发送,而不是GET)
最后,当我调试 get2post
函数时,它按预期工作。我不知道为什么 evt.preventDefault()
行只在调试时才有效。
我在 Firefox 和 Chrome 上试过,得到了相同的结果。这里发生了什么?为什么 evt.preventDefault()
不工作除非调试?
anchor
、button
或 input
在 mousedown
事件上没有默认行为。您想要阻止 click
事件的默认行为。
$(function () {
$('.post').on('click', function (evt) {
switch (evt.which) {
case 1:
case 2:
evt.stopPropagation();
evt.preventDefault();
get2post(evt);
break;
}
});
});