你需要调用preventDefault
你被传递的事件。任何其他preventDefault
要么未定义,要么做其他事情。尝试:
$("#city-button-panel a")
.click(function (event) {
event.preventDefault();
var $link = $(this);
getCityContentAjax($link);
});
演示:http: //jsfiddle.net/vatjK/
请注意,处理程序必须成功返回才能preventDefault
正常工作。如果getCityContentAjax
抛出异常,则无法阻止默认操作,同时也阻止异常传播。但是,您可以这样做(如果您无法修复getCityContentAjax
):
$("#city-button-panel a")
.click(function (event) {
event.preventDefault();
var $link = $(this);
try{
getCityContentAjax($link);
}catch(e){
console && console.error(e);
alert("Look at the console!!!"); // optional
}
});
这段代码没有语法错误。如果浏览器不这么认为,您可能在代码之前有语法错误。请注意,语法错误(括号不匹配等)和引用错误(全局范围内的函数不存在)之间存在差异。