我有以下内容:
$("#city-button-panel a")
.click(function () {
preventDefault();
var $link = $(this);
getCityContentAjax($link);
});
但是它不允许我阻止默认并且它会产生语法错误
以下是#city-button-panel内部的元素:
<a href="/City/1555009O" id="btn-49">49</a>
答案 0 :(得分:2)
您需要在传递的事件上致电preventDefault
。任何其他preventDefault
未定义或执行其他操作。尝试:
$("#city-button-panel a")
.click(function (event) {
event.preventDefault();
var $link = $(this);
getCityContentAjax($link);
});
请注意,处理程序必须成功返回才能使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
}
});
这段代码中没有语法错误。如果浏览器另有考虑,则在代码之前可能会出现语法错误。请注意,语法错误(不匹配的括号等)与引用错误(全局范围内的函数不存在)之间存在差异。
答案 1 :(得分:0)
这里是普通的javascript(+ html)版本
<head>
<script>
function theClick(url,ev){
getCityContentAjax(url);
ev.preventDefault();
}
</script>
</head>
<body>
<a onclick="theClick(this,event)" href="url.html">a link</a>
</body>