【发布时间】:2015-06-17 20:51:01
【问题描述】:
我正在尝试使用 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() 除非调试才能工作?
【问题讨论】:
标签: javascript jquery events javascript-events event-handling